1 // Copyright 2015-2021 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_HPP
9 #define VULKAN_HPP
10 
11 #if defined( _MSVC_LANG )
12 #  define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
13 #else
14 #  define VULKAN_HPP_CPLUSPLUS __cplusplus
15 #endif
16 
17 #if 201703L < VULKAN_HPP_CPLUSPLUS
18 #  define VULKAN_HPP_CPP_VERSION 20
19 #elif 201402L < VULKAN_HPP_CPLUSPLUS
20 #  define VULKAN_HPP_CPP_VERSION 17
21 #elif 201103L < VULKAN_HPP_CPLUSPLUS
22 #  define VULKAN_HPP_CPP_VERSION 14
23 #elif 199711L < VULKAN_HPP_CPLUSPLUS
24 #  define VULKAN_HPP_CPP_VERSION 11
25 #else
26 #  error "vulkan.hpp needs at least c++ standard version 11"
27 #endif
28 
29 #include <algorithm>
30 #include <array>
31 #include <cstddef>
32 #include <cstdint>
33 #include <cstring>
34 #include <functional>
35 #include <initializer_list>
36 #include <sstream>
37 #include <string>
38 #include <system_error>
39 #include <tuple>
40 #include <type_traits>
41 #include <vulkan/vulkan.h>
42 
43 #if 17 <= VULKAN_HPP_CPP_VERSION
44 #include <string_view>
45 #endif
46 
47 #if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
48 # if !defined(VULKAN_HPP_NO_SMART_HANDLE)
49 #  define VULKAN_HPP_NO_SMART_HANDLE
50 # endif
51 #else
52 # include <memory>
53 # include <vector>
54 #endif
55 
56 #if !defined(VULKAN_HPP_ASSERT)
57 # include <cassert>
58 # define VULKAN_HPP_ASSERT   assert
59 #endif
60 
61 #if !defined(VULKAN_HPP_ASSERT_ON_RESULT)
62 # define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
63 #endif
64 
65 #if !defined(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL)
66 # define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
67 #endif
68 
69 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
70 #  if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ )
71 #    include <dlfcn.h>
72 #  elif defined( _WIN32 )
73 typedef struct HINSTANCE__ * HINSTANCE;
74 #    if defined( _WIN64 )
75 typedef int64_t( __stdcall * FARPROC )();
76 #    else
77 typedef int( __stdcall * FARPROC )();
78 #    endif
79 extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
80 extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
81 extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName );
82 #  endif
83 #endif
84 
85 #if !defined(__has_include)
86 # define __has_include(x) false
87 #endif
88 
89 #if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( <compare> ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR )
90 # define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
91 #endif
92 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93 # include <compare>
94 #endif
95 
96 
97 static_assert( VK_HEADER_VERSION ==  172 , "Wrong VK_HEADER_VERSION!" );
98 
99 // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
100 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
101 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
102 # if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
103 #  define VULKAN_HPP_TYPESAFE_CONVERSION
104 # endif
105 #endif
106 
107 // <tuple> includes <sys/sysmacros.h> through some other header
108 // this results in major(x) being resolved to gnu_dev_major(x)
109 // which is an expression in a constructor initializer list.
110 #if defined(major)
111   #undef major
112 #endif
113 #if defined(minor)
114   #undef minor
115 #endif
116 
117 // Windows defines MemoryBarrier which is deprecated and collides
118 // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
119 #if defined(MemoryBarrier)
120   #undef MemoryBarrier
121 #endif
122 
123 #if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS)
124 # if defined(__clang__)
125 #  if __has_feature(cxx_unrestricted_unions)
126 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
127 #  endif
128 # elif defined(__GNUC__)
129 #  define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
130 #  if 40600 <= GCC_VERSION
131 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
132 #  endif
133 # elif defined(_MSC_VER)
134 #  if 1900 <= _MSC_VER
135 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
136 #  endif
137 # endif
138 #endif
139 
140 #if !defined(VULKAN_HPP_INLINE)
141 # if defined(__clang__)
142 #  if __has_attribute(always_inline)
143 #   define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
144 #  else
145 #   define VULKAN_HPP_INLINE inline
146 #  endif
147 # elif defined(__GNUC__)
148 #  define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
149 # elif defined(_MSC_VER)
150 #  define VULKAN_HPP_INLINE inline
151 # else
152 #  define VULKAN_HPP_INLINE inline
153 # endif
154 #endif
155 
156 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
157 # define VULKAN_HPP_TYPESAFE_EXPLICIT
158 #else
159 # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
160 #endif
161 
162 #if defined(__cpp_constexpr)
163 # define VULKAN_HPP_CONSTEXPR constexpr
164 # if __cpp_constexpr >= 201304
165 #  define VULKAN_HPP_CONSTEXPR_14  constexpr
166 # else
167 #  define VULKAN_HPP_CONSTEXPR_14
168 # endif
169 # define VULKAN_HPP_CONST_OR_CONSTEXPR  constexpr
170 #else
171 # define VULKAN_HPP_CONSTEXPR
172 # define VULKAN_HPP_CONSTEXPR_14
173 # define VULKAN_HPP_CONST_OR_CONSTEXPR  const
174 #endif
175 
176 #if !defined(VULKAN_HPP_NOEXCEPT)
177 # if defined(_MSC_VER) && (_MSC_VER <= 1800)
178 #  define VULKAN_HPP_NOEXCEPT
179 # else
180 #  define VULKAN_HPP_NOEXCEPT noexcept
181 #  define VULKAN_HPP_HAS_NOEXCEPT 1
182 #  if defined(VULKAN_HPP_NO_EXCEPTIONS)
183 #    define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
184 #  else
185 #    define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
186 #  endif
187 # endif
188 #endif
189 
190 #if 14 <= VULKAN_HPP_CPP_VERSION
191 #  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
192 #else
193 #  define VULKAN_HPP_DEPRECATED( msg )
194 #endif
195 
196 #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
197 #  define VULKAN_HPP_NODISCARD [[nodiscard]]
198 #  if defined(VULKAN_HPP_NO_EXCEPTIONS)
199 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
200 #  else
201 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
202 #  endif
203 #else
204 #  define VULKAN_HPP_NODISCARD
205 #  define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
206 #endif
207 
208 #if !defined(VULKAN_HPP_NAMESPACE)
209 #define VULKAN_HPP_NAMESPACE vk
210 #endif
211 
212 #define VULKAN_HPP_STRINGIFY2(text) #text
213 #define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text)
214 #define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE)
215 
216 namespace VULKAN_HPP_NAMESPACE
217 {
218 
219 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
220   template <typename T>
221   class ArrayProxy
222   {
223   public:
ArrayProxy()224     VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
225       : m_count( 0 )
226       , m_ptr( nullptr )
227     {}
228 
ArrayProxy(std::nullptr_t)229     VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
230       : m_count( 0 )
231       , m_ptr( nullptr )
232     {}
233 
ArrayProxy(T & value)234     ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
235       : m_count( 1 )
236       , m_ptr( &value )
237     {}
238 
239     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(typename std::remove_const<T>::type & value)240     ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
241       : m_count( 1 )
242       , m_ptr( &value )
243     {}
244 
ArrayProxy(uint32_t count,T * ptr)245     ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
246       : m_count( count )
247       , m_ptr( ptr )
248     {}
249 
250     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(uint32_t count,typename std::remove_const<T>::type * ptr)251     ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
252       : m_count( count )
253       , m_ptr( ptr )
254     {}
255 
256 #if __GNUC__ >= 9
257 #pragma GCC diagnostic push
258 #pragma GCC diagnostic ignored "-Winit-list-lifetime"
259 #endif
260 
ArrayProxy(std::initializer_list<T> const & list)261     ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
262       : m_count( static_cast<uint32_t>( list.size() ) )
263       , m_ptr( list.begin() )
264     {}
265 
266     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)267     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
268       : m_count( static_cast<uint32_t>( list.size() ) )
269       , m_ptr( list.begin() )
270     {}
271 
ArrayProxy(std::initializer_list<T> & list)272     ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
273       : m_count( static_cast<uint32_t>( list.size() ) )
274       , m_ptr( list.begin() )
275     {}
276 
277     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)278     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
279       : m_count( static_cast<uint32_t>( list.size() ) )
280       , m_ptr( list.begin() )
281     {}
282 
283 #if __GNUC__ >= 9
284 #pragma GCC diagnostic pop
285 #endif
286 
287     template <size_t N>
ArrayProxy(std::array<T,N> const & data)288     ArrayProxy( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
289       : m_count( N )
290       , m_ptr( data.data() )
291     {}
292 
293     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)294     ArrayProxy( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
295       : m_count( N )
296       , m_ptr( data.data() )
297     {}
298 
299     template <size_t N>
ArrayProxy(std::array<T,N> & data)300     ArrayProxy( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
301       : m_count( N )
302       , m_ptr( data.data() )
303     {}
304 
305     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)306     ArrayProxy( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
307       : m_count( N )
308       , m_ptr( data.data() )
309     {}
310 
311     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> const & data)312     ArrayProxy( std::vector<T, Allocator> const & 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> const & data)320     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
321       : m_count( static_cast<uint32_t>( data.size() ) )
322       , m_ptr( data.data() )
323     {}
324 
325     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> & data)326     ArrayProxy( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
327       : m_count( static_cast<uint32_t>( data.size() ) )
328       , m_ptr( data.data() )
329     {}
330 
331     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
332               typename B      = T,
333               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> & data)334     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
335       : m_count( static_cast<uint32_t>( data.size() ) )
336       , m_ptr( data.data() )
337     {}
338 
begin() const339     const T * begin() const VULKAN_HPP_NOEXCEPT
340     {
341       return m_ptr;
342     }
343 
end() const344     const T * end() const VULKAN_HPP_NOEXCEPT
345     {
346       return m_ptr + m_count;
347     }
348 
front() const349     const T & front() const VULKAN_HPP_NOEXCEPT
350     {
351       VULKAN_HPP_ASSERT( m_count && m_ptr );
352       return *m_ptr;
353     }
354 
back() const355     const T & back() const VULKAN_HPP_NOEXCEPT
356     {
357       VULKAN_HPP_ASSERT( m_count && m_ptr );
358       return *( m_ptr + m_count - 1 );
359     }
360 
empty() const361     bool empty() const VULKAN_HPP_NOEXCEPT
362     {
363       return ( m_count == 0 );
364     }
365 
size() const366     uint32_t size() const VULKAN_HPP_NOEXCEPT
367     {
368       return m_count;
369     }
370 
data() const371     T * data() const VULKAN_HPP_NOEXCEPT
372     {
373       return m_ptr;
374     }
375 
376   private:
377     uint32_t m_count;
378     T *      m_ptr;
379   };
380 
381   template <typename T>
382   class ArrayProxyNoTemporaries
383   {
384   public:
ArrayProxyNoTemporaries()385     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
386       : m_count( 0 )
387       , m_ptr( nullptr )
388     {}
389 
ArrayProxyNoTemporaries(std::nullptr_t)390     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
391       : m_count( 0 )
392       , m_ptr( nullptr )
393     {}
394 
ArrayProxyNoTemporaries(T & value)395     ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT
396       : m_count( 1 )
397       , m_ptr( &value )
398     {}
399 
400     ArrayProxyNoTemporaries( T && value ) = delete;
401 
402     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(typename std::remove_const<T>::type & value)403     ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
404       : m_count( 1 )
405       , m_ptr( &value )
406     {}
407 
408     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
409     ArrayProxyNoTemporaries( typename std::remove_const<T>::type && value ) = delete;
410 
ArrayProxyNoTemporaries(uint32_t count,T * ptr)411     ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
412       : m_count( count )
413       , m_ptr( ptr )
414     {}
415 
416     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)417     ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
418       : m_count( count )
419       , m_ptr( ptr )
420     {}
421 
ArrayProxyNoTemporaries(std::initializer_list<T> const & list)422     ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
423       : m_count( static_cast<uint32_t>( list.size() ) )
424       , m_ptr( list.begin() )
425     {}
426 
427     ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) = delete;
428 
429     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)430     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list )
431       VULKAN_HPP_NOEXCEPT
432       : m_count( static_cast<uint32_t>( list.size() ) )
433       , m_ptr( list.begin() )
434     {}
435 
436     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
437     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const && list ) = delete;
438 
ArrayProxyNoTemporaries(std::initializer_list<T> & list)439     ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
440       : m_count( static_cast<uint32_t>( list.size() ) )
441       , m_ptr( list.begin() )
442     {}
443 
444     ArrayProxyNoTemporaries( std::initializer_list<T> && list ) = delete;
445 
446     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)447     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
448       : m_count( static_cast<uint32_t>( list.size() ) )
449       , m_ptr( list.begin() )
450     {}
451 
452     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
453     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> && list ) = delete;
454 
455     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> const & data)456     ArrayProxyNoTemporaries( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
457       : m_count( N )
458       , m_ptr( data.data() )
459     {}
460 
461     template <size_t N>
462     ArrayProxyNoTemporaries( std::array<T, N> const && data ) = delete;
463 
464     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)465     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
466       : m_count( N )
467       , m_ptr( data.data() )
468     {}
469 
470     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
471     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> const && data ) = delete;
472 
473     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> & data)474     ArrayProxyNoTemporaries( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
475       : m_count( N )
476       , m_ptr( data.data() )
477     {}
478 
479     template <size_t N>
480     ArrayProxyNoTemporaries( std::array<T, N> && data ) = delete;
481 
482     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)483     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
484       : m_count( N )
485       , m_ptr( data.data() )
486     {}
487 
488     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
489     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> && data ) = delete;
490 
491     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> const & data)492     ArrayProxyNoTemporaries( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
493       : m_count( static_cast<uint32_t>( data.size() ) )
494       , m_ptr( data.data() )
495     {}
496 
497     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
498     ArrayProxyNoTemporaries( std::vector<T, Allocator> const && data ) = delete;
499 
500     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
501               typename B      = T,
502               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> const & data)503     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> const & data )
504       VULKAN_HPP_NOEXCEPT
505       : m_count( static_cast<uint32_t>( data.size() ) )
506       , m_ptr( data.data() )
507     {}
508 
509     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
510               typename B      = T,
511               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
512     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> const && data ) = delete;
513 
514     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> & data)515     ArrayProxyNoTemporaries( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
516       : m_count( static_cast<uint32_t>( data.size() ) )
517       , m_ptr( data.data() )
518     {}
519 
520     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
521     ArrayProxyNoTemporaries( std::vector<T, Allocator> && data ) = delete;
522 
523     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
524               typename B      = T,
525               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> & data)526     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
527       : m_count( static_cast<uint32_t>( data.size() ) )
528       , m_ptr( data.data() )
529     {}
530 
531     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
532               typename B      = T,
533               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
534     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> && data ) = delete;
535 
begin() const536     const T * begin() const VULKAN_HPP_NOEXCEPT
537     {
538       return m_ptr;
539     }
540 
end() const541     const T * end() const VULKAN_HPP_NOEXCEPT
542     {
543       return m_ptr + m_count;
544     }
545 
front() const546     const T & front() const VULKAN_HPP_NOEXCEPT
547     {
548       VULKAN_HPP_ASSERT( m_count && m_ptr );
549       return *m_ptr;
550     }
551 
back() const552     const T & back() const VULKAN_HPP_NOEXCEPT
553     {
554       VULKAN_HPP_ASSERT( m_count && m_ptr );
555       return *( m_ptr + m_count - 1 );
556     }
557 
empty() const558     bool empty() const VULKAN_HPP_NOEXCEPT
559     {
560       return ( m_count == 0 );
561     }
562 
size() const563     uint32_t size() const VULKAN_HPP_NOEXCEPT
564     {
565       return m_count;
566     }
567 
data() const568     T * data() const VULKAN_HPP_NOEXCEPT
569     {
570       return m_ptr;
571     }
572 
573   private:
574     uint32_t m_count;
575     T *      m_ptr;
576   };
577 #endif
578 
579   template <typename T, size_t N>
580   class ArrayWrapper1D : public std::array<T,N>
581   {
582   public:
ArrayWrapper1D()583     VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT
584       : std::array<T, N>()
585     {}
586 
ArrayWrapper1D(std::array<T,N> const & data)587     VULKAN_HPP_CONSTEXPR ArrayWrapper1D(std::array<T,N> const& data) VULKAN_HPP_NOEXCEPT
588       : std::array<T, N>(data)
589     {}
590 
591 #if defined(_WIN32) && !defined(_WIN64)
operator [](int index) const592     VULKAN_HPP_CONSTEXPR T const& operator[](int index) const VULKAN_HPP_NOEXCEPT
593     {
594       return std::array<T, N>::operator[](index);
595     }
596 
operator [](int index)597     T & operator[](int index) VULKAN_HPP_NOEXCEPT
598     {
599       return std::array<T, N>::operator[](index);
600     }
601 #endif
602 
operator T const*() const603     operator T const* () const VULKAN_HPP_NOEXCEPT
604     {
605       return this->data();
606     }
607 
operator T*()608     operator T * () VULKAN_HPP_NOEXCEPT
609     {
610       return this->data();
611     }
612 
613     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string() const614     operator std::string() const
615     {
616       return std::string( this->data() );
617     }
618 
619 #if 17 <= VULKAN_HPP_CPP_VERSION
620     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string_view() const621     operator std::string_view() const
622     {
623       return std::string_view( this->data() );
624     }
625 #endif
626 
627     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <(ArrayWrapper1D<char,N> const & rhs) const628     bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
629     {
630       return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
631     }
632 
633     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <=(ArrayWrapper1D<char,N> const & rhs) const634     bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
635     {
636       return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
637     }
638 
639     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >(ArrayWrapper1D<char,N> const & rhs) const640     bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
641     {
642       return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
643     }
644 
645     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >=(ArrayWrapper1D<char,N> const & rhs) const646     bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
647     {
648       return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
649     }
650 
651     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator ==(ArrayWrapper1D<char,N> const & rhs) const652     bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
653     {
654       return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
655     }
656 
657     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator !=(ArrayWrapper1D<char,N> const & rhs) const658     bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
659     {
660       return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
661     }
662   };
663 
664   // specialization of relational operators between std::string and arrays of chars
665   template <size_t N>
operator <(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)666   bool operator<(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
667   {
668     return lhs < rhs.data();
669   }
670 
671   template <size_t N>
operator <=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)672   bool operator<=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
673   {
674     return lhs <= rhs.data();
675   }
676 
677   template <size_t N>
operator >(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)678   bool operator>(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
679   {
680     return lhs > rhs.data();
681   }
682 
683   template <size_t N>
operator >=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)684   bool operator>=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
685   {
686     return lhs >= rhs.data();
687   }
688 
689   template <size_t N>
operator ==(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)690   bool operator==(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
691   {
692     return lhs == rhs.data();
693   }
694 
695   template <size_t N>
operator !=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)696   bool operator!=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
697   {
698     return lhs != rhs.data();
699   }
700 
701   template <typename T, size_t N, size_t M>
702   class ArrayWrapper2D : public std::array<ArrayWrapper1D<T,M>,N>
703   {
704   public:
ArrayWrapper2D()705     VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT
706       : std::array<ArrayWrapper1D<T,M>, N>()
707     {}
708 
ArrayWrapper2D(std::array<std::array<T,M>,N> const & data)709     VULKAN_HPP_CONSTEXPR ArrayWrapper2D(std::array<std::array<T,M>,N> const& data) VULKAN_HPP_NOEXCEPT
710       : std::array<ArrayWrapper1D<T,M>, N>(*reinterpret_cast<std::array<ArrayWrapper1D<T,M>,N> const*>(&data))
711     {}
712   };
713 
714   template <typename FlagBitsType> struct FlagTraits
715   {
716     enum { allFlags = 0 };
717   };
718 
719   template <typename BitType>
720   class Flags
721   {
722   public:
723     using MaskType = typename std::underlying_type<BitType>::type;
724 
725     // constructors
Flags()726     VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT
727       : m_mask(0)
728     {}
729 
Flags(BitType bit)730     VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT
731       : m_mask(static_cast<MaskType>(bit))
732     {}
733 
734     VULKAN_HPP_CONSTEXPR Flags(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT = default;
735 
Flags(MaskType flags)736     VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT
737       : m_mask(flags)
738     {}
739 
740     // relational operators
741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
742     auto operator<=>(Flags<BitType> const&) const = default;
743 #else
operator <(Flags<BitType> const & rhs) const744     VULKAN_HPP_CONSTEXPR bool operator<(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
745     {
746       return m_mask < rhs.m_mask;
747     }
748 
operator <=(Flags<BitType> const & rhs) const749     VULKAN_HPP_CONSTEXPR bool operator<=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
750     {
751       return m_mask <= rhs.m_mask;
752     }
753 
operator >(Flags<BitType> const & rhs) const754     VULKAN_HPP_CONSTEXPR bool operator>(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
755     {
756       return m_mask > rhs.m_mask;
757     }
758 
operator >=(Flags<BitType> const & rhs) const759     VULKAN_HPP_CONSTEXPR bool operator>=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
760     {
761       return m_mask >= rhs.m_mask;
762     }
763 
operator ==(Flags<BitType> const & rhs) const764     VULKAN_HPP_CONSTEXPR bool operator==(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
765     {
766       return m_mask == rhs.m_mask;
767     }
768 
operator !=(Flags<BitType> const & rhs) const769     VULKAN_HPP_CONSTEXPR bool operator!=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
770     {
771       return m_mask != rhs.m_mask;
772     }
773 #endif
774 
775     // logical operator
operator !() const776     VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
777     {
778       return !m_mask;
779     }
780 
781     // bitwise operators
operator &(Flags<BitType> const & rhs) const782     VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
783     {
784       return Flags<BitType>(m_mask & rhs.m_mask);
785     }
786 
operator |(Flags<BitType> const & rhs) const787     VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
788     {
789       return Flags<BitType>(m_mask | rhs.m_mask);
790     }
791 
operator ^(Flags<BitType> const & rhs) const792     VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
793     {
794       return Flags<BitType>(m_mask ^ rhs.m_mask);
795     }
796 
operator ~() const797     VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
798     {
799       return Flags<BitType>(m_mask ^ FlagTraits<BitType>::allFlags);
800     }
801 
802     // assignment operators
803     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT = default;
804 
operator |=(Flags<BitType> const & rhs)805     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
806     {
807       m_mask |= rhs.m_mask;
808       return *this;
809     }
810 
operator &=(Flags<BitType> const & rhs)811     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
812     {
813       m_mask &= rhs.m_mask;
814       return *this;
815     }
816 
operator ^=(Flags<BitType> const & rhs)817     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
818     {
819       m_mask ^= rhs.m_mask;
820       return *this;
821     }
822 
823     // cast operators
operator bool() const824     explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
825     {
826       return !!m_mask;
827     }
828 
operator MaskType() const829     explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
830     {
831         return m_mask;
832     }
833 
834 #if defined(VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC)
835   public:
836 #else
837   private:
838 #endif
839     MaskType  m_mask;
840   };
841 
842 #if !defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
843   // relational operators only needed for pre C++20
844   template <typename BitType>
operator <(BitType bit,Flags<BitType> const & flags)845   VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
846   {
847     return flags.operator>( bit );
848   }
849 
850   template <typename BitType>
operator <=(BitType bit,Flags<BitType> const & flags)851   VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
852   {
853     return flags.operator>=( bit );
854   }
855 
856   template <typename BitType>
operator >(BitType bit,Flags<BitType> const & flags)857   VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
858   {
859     return flags.operator<( bit );
860   }
861 
862   template <typename BitType>
operator >=(BitType bit,Flags<BitType> const & flags)863   VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
864   {
865     return flags.operator<=(bit);
866   }
867 
868   template <typename BitType>
operator ==(BitType bit,Flags<BitType> const & flags)869   VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
870   {
871     return flags.operator==( bit );
872   }
873 
874   template <typename BitType>
operator !=(BitType bit,Flags<BitType> const & flags)875   VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
876   {
877     return flags.operator!=( bit );
878   }
879 #endif
880 
881   // bitwise operators
882   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)883   VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
884   {
885     return flags.operator&( bit );
886   }
887 
888   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)889   VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
890   {
891     return flags.operator|( bit );
892   }
893 
894   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)895   VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
896   {
897     return flags.operator^( bit );
898   }
899 
900   template <typename RefType>
901   class Optional
902   {
903   public:
Optional(RefType & reference)904     Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; }
Optional(RefType * ptr)905     Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; }
Optional(std::nullptr_t)906     Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; }
907 
operator RefType*() const908     operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator ->() const909     RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator bool() const910     explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; }
911 
912   private:
913     RefType *m_ptr;
914   };
915 
916   template <typename X, typename Y> struct StructExtends { enum { value = false }; };
917 
918   template<typename Type, class...>
919   struct IsPartOfStructureChain
920   {
921     static const bool valid = false;
922   };
923 
924   template<typename Type, typename Head, typename... Tail>
925   struct IsPartOfStructureChain<Type, Head, Tail...>
926   {
927     static const bool valid = std::is_same<Type, Head>::value || IsPartOfStructureChain<Type, Tail...>::valid;
928   };
929 
930   template <size_t Index, typename T, typename... ChainElements>
931   struct StructureChainContains
932   {
933     static const bool value = std::is_same<T, typename std::tuple_element<Index, std::tuple<ChainElements...>>::type>::value ||
934                               StructureChainContains<Index - 1, T, ChainElements...>::value;
935   };
936 
937   template <typename T, typename... ChainElements>
938   struct StructureChainContains<0, T, ChainElements...>
939   {
940     static const bool value = std::is_same<T, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value;
941   };
942 
943   template <size_t Index, typename... ChainElements>
944   struct StructureChainValidation
945   {
946     using TestType = typename std::tuple_element<Index, std::tuple<ChainElements...>>::type;
947     static const bool valid =
948       StructExtends<TestType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
949       ( TestType::allowDuplicate || !StructureChainContains<Index - 1, TestType, ChainElements...>::value ) &&
950       StructureChainValidation<Index - 1, ChainElements...>::valid;
951   };
952 
953   template <typename... ChainElements>
954   struct StructureChainValidation<0, ChainElements...>
955   {
956     static const bool valid = true;
957   };
958 
959   template <typename... ChainElements>
960   class StructureChain : public std::tuple<ChainElements...>
961   {
962   public:
StructureChain()963     StructureChain() VULKAN_HPP_NOEXCEPT
964     {
965       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
966                      "The structure chain is not valid!" );
967       link<sizeof...( ChainElements ) - 1>();
968     }
969 
StructureChain(StructureChain const & rhs)970     StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( rhs )
971     {
972       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
973                      "The structure chain is not valid!" );
974       link<sizeof...( ChainElements ) - 1>();
975     }
976 
StructureChain(StructureChain && rhs)977     StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT
978       : std::tuple<ChainElements...>( std::forward<std::tuple<ChainElements...>>( rhs ) )
979     {
980       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
981                      "The structure chain is not valid!" );
982       link<sizeof...( ChainElements ) - 1>();
983     }
984 
StructureChain(ChainElements const &...elems)985     StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( elems... )
986     {
987       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
988                      "The structure chain is not valid!" );
989       link<sizeof...( ChainElements ) - 1>();
990     }
991 
operator =(StructureChain const & rhs)992     StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT
993     {
994       std::tuple<ChainElements...>::operator=( rhs );
995       link<sizeof...( ChainElements ) - 1>();
996       return *this;
997     }
998 
999     StructureChain & operator=( StructureChain && rhs ) = delete;
1000 
1001     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
1002     T & get() VULKAN_HPP_NOEXCEPT
1003     {
1004       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1005     }
1006 
1007     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
1008     T const & get() const VULKAN_HPP_NOEXCEPT
1009     {
1010       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...> const &>( *this ) );
1011     }
1012 
1013     template <typename T0, typename T1, typename... Ts>
get()1014     std::tuple<T0 &, T1 &, Ts &...> get() VULKAN_HPP_NOEXCEPT
1015     {
1016       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
1017     }
1018 
1019     template <typename T0, typename T1, typename... Ts>
get() const1020     std::tuple<T0 const &, T1 const &, Ts const &...> get() const VULKAN_HPP_NOEXCEPT
1021     {
1022       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
1023     }
1024 
1025     template <typename ClassType, size_t Which = 0>
1026     typename std::enable_if<
1027       std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
1028         ( Which == 0 ),
1029       bool>::type
isLinked() const1030       isLinked() const VULKAN_HPP_NOEXCEPT
1031     {
1032       return true;
1033     }
1034 
1035     template <typename ClassType, size_t Which = 0>
1036     typename std::enable_if<
1037       !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value ||
1038         ( Which != 0 ),
1039       bool>::type
isLinked() const1040       isLinked() const VULKAN_HPP_NOEXCEPT
1041     {
1042       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
1043                      "Can't unlink Structure that's not part of this StructureChain!" );
1044       return isLinked( reinterpret_cast<VkBaseInStructure const *>( &get<ClassType, Which>() ) );
1045     }
1046 
1047     template <typename ClassType, size_t Which = 0>
1048     typename std::enable_if<
1049       !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value ||
1050         ( Which != 0 ),
relink()1051       void>::type relink() VULKAN_HPP_NOEXCEPT
1052     {
1053       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
1054                      "Can't relink Structure that's not part of this StructureChain!" );
1055       auto pNext = reinterpret_cast<VkBaseInStructure *>( &get<ClassType, Which>() );
1056       VULKAN_HPP_ASSERT( !isLinked( pNext ) );
1057       auto & headElement = std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) );
1058       pNext->pNext       = reinterpret_cast<VkBaseInStructure const *>( headElement.pNext );
1059       headElement.pNext  = pNext;
1060     }
1061 
1062     template <typename ClassType, size_t Which = 0>
1063     typename std::enable_if<
1064       !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value ||
1065         ( Which != 0 ),
unlink()1066       void>::type unlink() VULKAN_HPP_NOEXCEPT
1067     {
1068       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
1069                      "Can't unlink Structure that's not part of this StructureChain!" );
1070       unlink( reinterpret_cast<VkBaseOutStructure const *>( &get<ClassType, Which>() ) );
1071     }
1072 
1073   private:
1074     template <int Index, typename T, int Which, typename, class First, class... Types>
1075     struct ChainElementIndex : ChainElementIndex<Index + 1, T, Which, void, Types...>
1076     {};
1077 
1078     template <int Index, typename T, int Which, class First, class... Types>
1079     struct ChainElementIndex<Index,
1080                              T,
1081                              Which,
1082                              typename std::enable_if<!std::is_same<T, First>::value, void>::type,
1083                              First,
1084                              Types...> : ChainElementIndex<Index + 1, T, Which, void, Types...>
1085     {};
1086 
1087     template <int Index, typename T, int Which, class First, class... Types>
1088     struct ChainElementIndex<Index,
1089                              T,
1090                              Which,
1091                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1092                              First,
1093                              Types...> : ChainElementIndex<Index + 1, T, Which - 1, void, Types...>
1094     {};
1095 
1096     template <int Index, typename T, class First, class... Types>
1097     struct ChainElementIndex<Index,
1098                              T,
1099                              0,
1100                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1101                              First,
1102                              Types...> : std::integral_constant<int, Index>
1103     {};
1104 
isLinked(VkBaseInStructure const * pNext) const1105     bool isLinked( VkBaseInStructure const * pNext ) const VULKAN_HPP_NOEXCEPT
1106     {
1107       VkBaseInStructure const * elementPtr = reinterpret_cast<VkBaseInStructure const *>(
1108         &std::get<0>( static_cast<std::tuple<ChainElements...> const &>( *this ) ) );
1109       while ( elementPtr )
1110       {
1111         if ( elementPtr->pNext == pNext )
1112         {
1113           return true;
1114         }
1115         elementPtr = elementPtr->pNext;
1116       }
1117       return false;
1118     }
1119 
1120     template <size_t Index>
link()1121     typename std::enable_if<Index != 0, void>::type link() VULKAN_HPP_NOEXCEPT
1122     {
1123       auto & x = std::get<Index - 1>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1124       x.pNext  = &std::get<Index>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1125       link<Index - 1>();
1126     }
1127 
1128     template <size_t Index>
link()1129     typename std::enable_if<Index == 0, void>::type link() VULKAN_HPP_NOEXCEPT
1130     {}
1131 
unlink(VkBaseOutStructure const * pNext)1132     void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1133     {
1134       VkBaseOutStructure * elementPtr = reinterpret_cast<VkBaseOutStructure *>(
1135         &std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) ) );
1136       while ( elementPtr && ( elementPtr->pNext != pNext ) )
1137       {
1138         elementPtr = elementPtr->pNext;
1139       }
1140       if ( elementPtr )
1141       {
1142         elementPtr->pNext = pNext->pNext;
1143       }
1144       else
1145       {
1146         VULKAN_HPP_ASSERT( false );  // fires, if the ClassType member has already been unlinked !
1147       }
1148     }
1149   };
1150 
1151 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
1152   template <typename Type, typename Dispatch> class UniqueHandleTraits;
1153 
1154   template <typename Type, typename Dispatch>
1155   class UniqueHandle : public UniqueHandleTraits<Type,Dispatch>::deleter
1156   {
1157   private:
1158     using Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter;
1159 
1160   public:
1161     using element_type = Type;
1162 
UniqueHandle()1163     UniqueHandle()
1164       : Deleter()
1165       , m_value()
1166     {}
1167 
UniqueHandle(Type const & value,Deleter const & deleter=Deleter ())1168     explicit UniqueHandle( Type const& value, Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
1169       : Deleter( deleter)
1170       , m_value( value )
1171     {}
1172 
1173     UniqueHandle( UniqueHandle const& ) = delete;
1174 
UniqueHandle(UniqueHandle && other)1175     UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1176       : Deleter( std::move( static_cast<Deleter&>( other ) ) )
1177       , m_value( other.release() )
1178     {}
1179 
~UniqueHandle()1180     ~UniqueHandle() VULKAN_HPP_NOEXCEPT
1181     {
1182       if ( m_value ) this->destroy( m_value );
1183     }
1184 
1185     UniqueHandle & operator=( UniqueHandle const& ) = delete;
1186 
operator =(UniqueHandle && other)1187     UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1188     {
1189       reset( other.release() );
1190       *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
1191       return *this;
1192     }
1193 
operator bool() const1194     explicit operator bool() const VULKAN_HPP_NOEXCEPT
1195     {
1196       return m_value.operator bool();
1197     }
1198 
operator ->() const1199     Type const* operator->() const VULKAN_HPP_NOEXCEPT
1200     {
1201       return &m_value;
1202     }
1203 
operator ->()1204     Type * operator->() VULKAN_HPP_NOEXCEPT
1205     {
1206       return &m_value;
1207     }
1208 
operator *() const1209     Type const& operator*() const VULKAN_HPP_NOEXCEPT
1210     {
1211       return m_value;
1212     }
1213 
operator *()1214     Type & operator*() VULKAN_HPP_NOEXCEPT
1215     {
1216       return m_value;
1217     }
1218 
get() const1219     const Type & get() const VULKAN_HPP_NOEXCEPT
1220     {
1221       return m_value;
1222     }
1223 
get()1224     Type & get() VULKAN_HPP_NOEXCEPT
1225     {
1226       return m_value;
1227     }
1228 
reset(Type const & value=Type ())1229     void reset( Type const& value = Type() ) VULKAN_HPP_NOEXCEPT
1230     {
1231       if ( m_value != value )
1232       {
1233         if ( m_value ) this->destroy( m_value );
1234         m_value = value;
1235       }
1236     }
1237 
release()1238     Type release() VULKAN_HPP_NOEXCEPT
1239     {
1240       Type value = m_value;
1241       m_value = nullptr;
1242       return value;
1243     }
1244 
swap(UniqueHandle<Type,Dispatch> & rhs)1245     void swap( UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1246     {
1247       std::swap(m_value, rhs.m_value);
1248       std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
1249     }
1250 
1251   private:
1252     Type    m_value;
1253   };
1254 
1255   template <typename UniqueType>
uniqueToRaw(std::vector<UniqueType> const & handles)1256   VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw(std::vector<UniqueType> const& handles)
1257   {
1258     std::vector<typename UniqueType::element_type> newBuffer(handles.size());
1259     std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); });
1260     return newBuffer;
1261   }
1262 
1263   template <typename Type, typename Dispatch>
swap(UniqueHandle<Type,Dispatch> & lhs,UniqueHandle<Type,Dispatch> & rhs)1264   VULKAN_HPP_INLINE void swap( UniqueHandle<Type,Dispatch> & lhs, UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1265   {
1266     lhs.swap( rhs );
1267   }
1268 #endif
1269 
1270 #if !defined(VK_NO_PROTOTYPES)
1271   class DispatchLoaderStatic
1272   {
1273   public:
1274 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const1275     VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
1276     {
1277       return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
1278     }
1279 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1280 
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex) const1281     VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1282     {
1283       return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
1284     }
1285 
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex) const1286     VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1287     {
1288       return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
1289     }
1290 
vkAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration) const1291     VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const VULKAN_HPP_NOEXCEPT
1292     {
1293       return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
1294     }
1295 
vkAcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo) const1296     VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1297     {
1298       return ::vkAcquireProfilingLockKHR( device, pInfo );
1299     }
1300 
1301 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkAcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const1302     VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
1303     {
1304       return ::vkAcquireWinrtDisplayNV( physicalDevice, display );
1305     }
1306 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1307 
1308 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display) const1309     VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
1310     {
1311       return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
1312     }
1313 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
1314 
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers) const1315     VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1316     {
1317       return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
1318     }
1319 
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets) const1320     VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1321     {
1322       return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1323     }
1324 
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory) const1325     VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const VULKAN_HPP_NOEXCEPT
1326     {
1327       return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1328     }
1329 
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo) const1330     VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const VULKAN_HPP_NOEXCEPT
1331     {
1332       return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
1333     }
1334 
vkBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos) const1335     VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1336     {
1337       return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
1338     }
1339 
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1340     VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1341     {
1342       return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1343     }
1344 
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1345     VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1346     {
1347       return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
1348     }
1349 
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1350     VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1351     {
1352       return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
1353     }
1354 
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1355     VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1356     {
1357       return ::vkBindImageMemory( device, image, memory, memoryOffset );
1358     }
1359 
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1360     VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1361     {
1362       return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
1363     }
1364 
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1365     VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1366     {
1367       return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
1368     }
1369 
vkBuildAccelerationStructuresKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos) const1370     VkResult vkBuildAccelerationStructuresKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
1371     {
1372       return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos );
1373     }
1374 
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin) const1375     void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
1376     {
1377       return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
1378     }
1379 
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1380     void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1381     {
1382       return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1383     }
1384 
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags) const1385     void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
1386     {
1387       return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
1388     }
1389 
vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index) const1390     void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1391     {
1392       return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
1393     }
1394 
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents) const1395     void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1396     {
1397       return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
1398     }
1399 
vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const1400     void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
1401     {
1402       return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
1403     }
1404 
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const1405     void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
1406     {
1407       return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
1408     }
1409 
vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1410     void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1411     {
1412       return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1413     }
1414 
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets) const1415     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
1416     {
1417       return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
1418     }
1419 
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType) const1420     void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT
1421     {
1422       return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
1423     }
1424 
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const1425     void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
1426     {
1427       return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
1428     }
1429 
vkCmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex) const1430     void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT
1431     {
1432       return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
1433     }
1434 
vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const1435     void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
1436     {
1437       return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
1438     }
1439 
vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes) const1440     void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const VULKAN_HPP_NOEXCEPT
1441     {
1442       return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
1443     }
1444 
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets) const1445     void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const VULKAN_HPP_NOEXCEPT
1446     {
1447       return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
1448     }
1449 
vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides) const1450     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
1451     {
1452       return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
1453     }
1454 
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter) const1455     void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const VULKAN_HPP_NOEXCEPT
1456     {
1457       return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
1458     }
1459 
vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2KHR * pBlitImageInfo) const1460     void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
1461     {
1462       return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo );
1463     }
1464 
vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset) const1465     void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT
1466     {
1467       return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
1468     }
1469 
vkCmdBuildAccelerationStructuresIndirectKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkDeviceAddress * pIndirectDeviceAddresses,const uint32_t * pIndirectStrides,const uint32_t * const * ppMaxPrimitiveCounts) const1470     void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT
1471     {
1472       return ::vkCmdBuildAccelerationStructuresIndirectKHR( commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts );
1473     }
1474 
vkCmdBuildAccelerationStructuresKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos) const1475     void vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
1476     {
1477       return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos );
1478     }
1479 
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects) const1480     void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const VULKAN_HPP_NOEXCEPT
1481     {
1482       return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
1483     }
1484 
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1485     void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1486     {
1487       return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
1488     }
1489 
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1490     void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1491     {
1492       return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
1493     }
1494 
vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo) const1495     void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1496     {
1497       return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
1498     }
1499 
vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeKHR mode) const1500     void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
1501     {
1502       return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
1503     }
1504 
vkCmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1505     void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1506     {
1507       return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
1508     }
1509 
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions) const1510     void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1511     {
1512       return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
1513     }
1514 
vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2KHR * pCopyBufferInfo) const1515     void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
1516     {
1517       return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo );
1518     }
1519 
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1520     void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1521     {
1522       return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
1523     }
1524 
vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2KHR * pCopyBufferToImageInfo) const1525     void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
1526     {
1527       return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo );
1528     }
1529 
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions) const1530     void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1531     {
1532       return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1533     }
1534 
vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2KHR * pCopyImageInfo) const1535     void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
1536     {
1537       return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo );
1538     }
1539 
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1540     void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1541     {
1542       return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
1543     }
1544 
vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2KHR * pCopyImageToBufferInfo) const1545     void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
1546     {
1547       return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo );
1548     }
1549 
vkCmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1550     void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1551     {
1552       return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
1553     }
1554 
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags) const1555     void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1556     {
1557       return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
1558     }
1559 
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1560     void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1561     {
1562       return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
1563     }
1564 
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) const1565     void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1566     {
1567       return ::vkCmdDebugMarkerEndEXT( commandBuffer );
1568     }
1569 
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1570     void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1571     {
1572       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
1573     }
1574 
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1575     void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
1576     {
1577       return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
1578     }
1579 
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1580     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
1581     {
1582       return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1583     }
1584 
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1585     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
1586     {
1587       return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1588     }
1589 
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const1590     void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1591     {
1592       return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
1593     }
1594 
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const1595     void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1596     {
1597       return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
1598     }
1599 
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const1600     void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1601     {
1602       return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
1603     }
1604 
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1605     void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1606     {
1607       return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
1608     }
1609 
vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1610     void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1611     {
1612       return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1613     }
1614 
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1615     void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1616     {
1617       return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1618     }
1619 
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1620     void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1621     {
1622       return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1623     }
1624 
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1625     void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1626     {
1627       return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
1628     }
1629 
vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const1630     void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT
1631     {
1632       return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
1633     }
1634 
vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1635     void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1636     {
1637       return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1638     }
1639 
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1640     void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1641     {
1642       return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1643     }
1644 
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1645     void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1646     {
1647       return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1648     }
1649 
vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1650     void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1651     {
1652       return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1653     }
1654 
vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1655     void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1656     {
1657       return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
1658     }
1659 
vkCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask) const1660     void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
1661     {
1662       return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
1663     }
1664 
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer) const1665     void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1666     {
1667       return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
1668     }
1669 
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) const1670     void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1671     {
1672       return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
1673     }
1674 
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query) const1675     void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1676     {
1677       return ::vkCmdEndQuery( commandBuffer, queryPool, query );
1678     }
1679 
vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index) const1680     void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1681     {
1682       return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
1683     }
1684 
vkCmdEndRenderPass(VkCommandBuffer commandBuffer) const1685     void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1686     {
1687       return ::vkCmdEndRenderPass( commandBuffer );
1688     }
1689 
vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1690     void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1691     {
1692       return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
1693     }
1694 
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1695     void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1696     {
1697       return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
1698     }
1699 
vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1700     void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1701     {
1702       return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1703     }
1704 
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const1705     void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1706     {
1707       return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
1708     }
1709 
vkCmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1710     void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1711     {
1712       return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
1713     }
1714 
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data) const1715     void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT
1716     {
1717       return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
1718     }
1719 
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1720     void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1721     {
1722       return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1723     }
1724 
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents) const1725     void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1726     {
1727       return ::vkCmdNextSubpass( commandBuffer, contents );
1728     }
1729 
vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1730     void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1731     {
1732       return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1733     }
1734 
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1735     void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1736     {
1737       return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1738     }
1739 
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) const1740     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
1741     {
1742       return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1743     }
1744 
vkCmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,const VkDependencyInfoKHR * pDependencyInfo) const1745     void vkCmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, const VkDependencyInfoKHR* pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
1746     {
1747       return ::vkCmdPipelineBarrier2KHR( commandBuffer, pDependencyInfo );
1748     }
1749 
vkCmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1750     void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1751     {
1752       return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
1753     }
1754 
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues) const1755     void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const VULKAN_HPP_NOEXCEPT
1756     {
1757       return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
1758     }
1759 
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites) const1760     void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
1761     {
1762       return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
1763     }
1764 
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData) const1765     void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const VULKAN_HPP_NOEXCEPT
1766     {
1767       return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
1768     }
1769 
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1770     void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1771     {
1772       return ::vkCmdResetEvent( commandBuffer, event, stageMask );
1773     }
1774 
vkCmdResetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2KHR stageMask) const1775     void vkCmdResetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT
1776     {
1777       return ::vkCmdResetEvent2KHR( commandBuffer, event, stageMask );
1778     }
1779 
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const1780     void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
1781     {
1782       return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
1783     }
1784 
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions) const1785     void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const VULKAN_HPP_NOEXCEPT
1786     {
1787       return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1788     }
1789 
vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2KHR * pResolveImageInfo) const1790     void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
1791     {
1792       return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
1793     }
1794 
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4]) const1795     void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
1796     {
1797       return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
1798     }
1799 
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker) const1800     void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
1801     {
1802       return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
1803     }
1804 
vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders) const1805     void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
1806     {
1807       return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
1808     }
1809 
vkCmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode) const1810     void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
1811     {
1812       return ::vkCmdSetCullModeEXT( commandBuffer, cullMode );
1813     }
1814 
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const1815     void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
1816     {
1817       return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
1818     }
1819 
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds) const1820     void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
1821     {
1822       return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
1823     }
1824 
vkCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable) const1825     void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
1826     {
1827       return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable );
1828     }
1829 
vkCmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp) const1830     void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
1831     {
1832       return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp );
1833     }
1834 
vkCmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable) const1835     void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
1836     {
1837       return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable );
1838     }
1839 
vkCmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable) const1840     void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
1841     {
1842       return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable );
1843     }
1844 
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1845     void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1846     {
1847       return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
1848     }
1849 
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1850     void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1851     {
1852       return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
1853     }
1854 
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles) const1855     void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
1856     {
1857       return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
1858     }
1859 
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1860     void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1861     {
1862       return ::vkCmdSetEvent( commandBuffer, event, stageMask );
1863     }
1864 
vkCmdSetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfoKHR * pDependencyInfo) const1865     void vkCmdSetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfoKHR* pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
1866     {
1867       return ::vkCmdSetEvent2KHR( commandBuffer, event, pDependencyInfo );
1868     }
1869 
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors) const1870     void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
1871     {
1872       return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
1873     }
1874 
vkCmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer,VkFragmentShadingRateNV shadingRate,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const1875     void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
1876     {
1877       return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps );
1878     }
1879 
vkCmdSetFragmentShadingRateKHR(VkCommandBuffer commandBuffer,const VkExtent2D * pFragmentSize,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const1880     void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
1881     {
1882       return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps );
1883     }
1884 
vkCmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace) const1885     void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
1886     {
1887       return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace );
1888     }
1889 
vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern) const1890     void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
1891     {
1892       return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
1893     }
1894 
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth) const1895     void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
1896     {
1897       return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
1898     }
1899 
vkCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo) const1900     VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1901     {
1902       return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
1903     }
1904 
vkCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo) const1905     VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
1906     {
1907       return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
1908     }
1909 
vkCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo) const1910     VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1911     {
1912       return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
1913     }
1914 
vkCmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology) const1915     void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
1916     {
1917       return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology );
1918     }
1919 
vkCmdSetRayTracingPipelineStackSizeKHR(VkCommandBuffer commandBuffer,uint32_t pipelineStackSize) const1920     void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
1921     {
1922       return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize );
1923     }
1924 
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo) const1925     void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
1926     {
1927       return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
1928     }
1929 
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors) const1930     void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1931     {
1932       return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
1933     }
1934 
vkCmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors) const1935     void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1936     {
1937       return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors );
1938     }
1939 
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask) const1940     void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT
1941     {
1942       return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
1943     }
1944 
vkCmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp) const1945     void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT
1946     {
1947       return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
1948     }
1949 
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference) const1950     void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
1951     {
1952       return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
1953     }
1954 
vkCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable) const1955     void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
1956     {
1957       return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable );
1958     }
1959 
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask) const1960     void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
1961     {
1962       return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
1963     }
1964 
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports) const1965     void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1966     {
1967       return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
1968     }
1969 
vkCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes) const1970     void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
1971     {
1972       return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
1973     }
1974 
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings) const1975     void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
1976     {
1977       return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
1978     }
1979 
vkCmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports) const1980     void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1981     {
1982       return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports );
1983     }
1984 
vkCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,VkDeviceAddress indirectDeviceAddress) const1985     void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
1986     {
1987       return ::vkCmdTraceRaysIndirectKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress );
1988     }
1989 
vkCmdTraceRaysKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth) const1990     void vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT
1991     {
1992       return ::vkCmdTraceRaysKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
1993     }
1994 
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) const1995     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
1996     {
1997       return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth );
1998     }
1999 
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData) const2000     void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const VULKAN_HPP_NOEXCEPT
2001     {
2002       return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
2003     }
2004 
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) const2005     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
2006     {
2007       return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
2008     }
2009 
vkCmdWaitEvents2KHR(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfoKHR * pDependencyInfos) const2010     void vkCmdWaitEvents2KHR( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfoKHR* pDependencyInfos ) const VULKAN_HPP_NOEXCEPT
2011     {
2012       return ::vkCmdWaitEvents2KHR( commandBuffer, eventCount, pEvents, pDependencyInfos );
2013     }
2014 
vkCmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const2015     void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
2016     {
2017       return ::vkCmdWriteAccelerationStructuresPropertiesKHR( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
2018     }
2019 
vkCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const2020     void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
2021     {
2022       return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
2023     }
2024 
vkCmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,VkPipelineStageFlags2KHR stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const2025     void vkCmdWriteBufferMarker2AMD( VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
2026     {
2027       return ::vkCmdWriteBufferMarker2AMD( commandBuffer, stage, dstBuffer, dstOffset, marker );
2028     }
2029 
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const2030     void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
2031     {
2032       return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
2033     }
2034 
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query) const2035     void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
2036     {
2037       return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
2038     }
2039 
vkCmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer,VkPipelineStageFlags2KHR stage,VkQueryPool queryPool,uint32_t query) const2040     void vkCmdWriteTimestamp2KHR( VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
2041     {
2042       return ::vkCmdWriteTimestamp2KHR( commandBuffer, stage, queryPool, query );
2043     }
2044 
vkCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader) const2045     VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
2046     {
2047       return ::vkCompileDeferredNV( device, pipeline, shader );
2048     }
2049 
vkCopyAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureInfoKHR * pInfo) const2050     VkResult vkCopyAccelerationStructureKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
2051     {
2052       return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo );
2053     }
2054 
vkCopyAccelerationStructureToMemoryKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const2055     VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
2056     {
2057       return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo );
2058     }
2059 
vkCopyMemoryToAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const2060     VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
2061     {
2062       return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo );
2063     }
2064 
vkCreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure) const2065     VkResult vkCreateAccelerationStructureKHR( VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
2066     {
2067       return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
2068     }
2069 
vkCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure) const2070     VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
2071     {
2072       return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
2073     }
2074 
2075 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2076     VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2077     {
2078       return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2079     }
2080 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2081 
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer) const2082     VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const VULKAN_HPP_NOEXCEPT
2083     {
2084       return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
2085     }
2086 
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView) const2087     VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const VULKAN_HPP_NOEXCEPT
2088     {
2089       return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
2090     }
2091 
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool) const2092     VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const VULKAN_HPP_NOEXCEPT
2093     {
2094       return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
2095     }
2096 
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2097     VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2098     {
2099       return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2100     }
2101 
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback) const2102     VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const VULKAN_HPP_NOEXCEPT
2103     {
2104       return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
2105     }
2106 
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger) const2107     VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const VULKAN_HPP_NOEXCEPT
2108     {
2109       return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
2110     }
2111 
vkCreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation) const2112     VkResult vkCreateDeferredOperationKHR( VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
2113     {
2114       return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
2115     }
2116 
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool) const2117     VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
2118     {
2119       return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
2120     }
2121 
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout) const2122     VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const VULKAN_HPP_NOEXCEPT
2123     {
2124       return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
2125     }
2126 
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2127     VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2128     {
2129       return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2130     }
2131 
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2132     VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2133     {
2134       return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2135     }
2136 
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice) const2137     VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const VULKAN_HPP_NOEXCEPT
2138     {
2139       return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
2140     }
2141 
2142 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
vkCreateDirectFBSurfaceEXT(VkInstance instance,const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2143     VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2144     {
2145       return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2146     }
2147 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
2148 
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode) const2149     VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const VULKAN_HPP_NOEXCEPT
2150     {
2151       return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2152     }
2153 
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2154     VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2155     {
2156       return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2157     }
2158 
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent) const2159     VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const VULKAN_HPP_NOEXCEPT
2160     {
2161       return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
2162     }
2163 
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const2164     VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
2165     {
2166       return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
2167     }
2168 
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer) const2169     VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const VULKAN_HPP_NOEXCEPT
2170     {
2171       return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
2172     }
2173 
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2174     VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2175     {
2176       return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2177     }
2178 
vkCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2179     VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2180     {
2181       return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2182     }
2183 
2184 #ifdef VK_USE_PLATFORM_IOS_MVK
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2185     VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2186     {
2187       return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2188     }
2189 #endif /*VK_USE_PLATFORM_IOS_MVK*/
2190 
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage) const2191     VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const VULKAN_HPP_NOEXCEPT
2192     {
2193       return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
2194     }
2195 
2196 #ifdef VK_USE_PLATFORM_FUCHSIA
vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2197     VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2198     {
2199       return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
2200     }
2201 #endif /*VK_USE_PLATFORM_FUCHSIA*/
2202 
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView) const2203     VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const VULKAN_HPP_NOEXCEPT
2204     {
2205       return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
2206     }
2207 
vkCreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout) const2208     VkResult vkCreateIndirectCommandsLayoutNV( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
2209     {
2210       return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
2211     }
2212 
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance) const2213     VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const VULKAN_HPP_NOEXCEPT
2214     {
2215       return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
2216     }
2217 
2218 #ifdef VK_USE_PLATFORM_MACOS_MVK
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2219     VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2220     {
2221       return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2222     }
2223 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
2224 
2225 #ifdef VK_USE_PLATFORM_METAL_EXT
vkCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2226     VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2227     {
2228       return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2229     }
2230 #endif /*VK_USE_PLATFORM_METAL_EXT*/
2231 
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache) const2232     VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const VULKAN_HPP_NOEXCEPT
2233     {
2234       return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
2235     }
2236 
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout) const2237     VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
2238     {
2239       return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
2240     }
2241 
vkCreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlotEXT * pPrivateDataSlot) const2242     VkResult vkCreatePrivateDataSlotEXT( VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
2243     {
2244       return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
2245     }
2246 
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool) const2247     VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const VULKAN_HPP_NOEXCEPT
2248     {
2249       return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
2250     }
2251 
vkCreateRayTracingPipelinesKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2252     VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2253     {
2254       return ::vkCreateRayTracingPipelinesKHR( device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2255     }
2256 
vkCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2257     VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2258     {
2259       return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2260     }
2261 
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2262     VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2263     {
2264       return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
2265     }
2266 
vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2267     VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2268     {
2269       return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
2270     }
2271 
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2272     VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2273     {
2274       return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
2275     }
2276 
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler) const2277     VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const VULKAN_HPP_NOEXCEPT
2278     {
2279       return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
2280     }
2281 
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2282     VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2283     {
2284       return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
2285     }
2286 
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2287     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2288     {
2289       return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
2290     }
2291 
2292 #ifdef VK_USE_PLATFORM_SCREEN_QNX
vkCreateScreenSurfaceQNX(VkInstance instance,const VkScreenSurfaceCreateInfoQNX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2293     VkResult vkCreateScreenSurfaceQNX( VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2294     {
2295       return ::vkCreateScreenSurfaceQNX( instance, pCreateInfo, pAllocator, pSurface );
2296     }
2297 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
2298 
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore) const2299     VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const VULKAN_HPP_NOEXCEPT
2300     {
2301       return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
2302     }
2303 
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule) const2304     VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const VULKAN_HPP_NOEXCEPT
2305     {
2306       return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
2307     }
2308 
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains) const2309     VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const VULKAN_HPP_NOEXCEPT
2310     {
2311       return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
2312     }
2313 
2314 #ifdef VK_USE_PLATFORM_GGP
vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2315     VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2316     {
2317       return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
2318     }
2319 #endif /*VK_USE_PLATFORM_GGP*/
2320 
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain) const2321     VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const VULKAN_HPP_NOEXCEPT
2322     {
2323       return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
2324     }
2325 
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache) const2326     VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const VULKAN_HPP_NOEXCEPT
2327     {
2328       return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
2329     }
2330 
2331 #ifdef VK_USE_PLATFORM_VI_NN
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2332     VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2333     {
2334       return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
2335     }
2336 #endif /*VK_USE_PLATFORM_VI_NN*/
2337 
2338 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2339     VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2340     {
2341       return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2342     }
2343 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
2344 
2345 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2346     VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2347     {
2348       return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2349     }
2350 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2351 
2352 #ifdef VK_USE_PLATFORM_XCB_KHR
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2353     VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2354     {
2355       return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2356     }
2357 #endif /*VK_USE_PLATFORM_XCB_KHR*/
2358 
2359 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2360     VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2361     {
2362       return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2363     }
2364 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
2365 
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo) const2366     VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
2367     {
2368       return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
2369     }
2370 
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo) const2371     VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
2372     {
2373       return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
2374     }
2375 
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage) const2376     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
2377     {
2378       return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
2379     }
2380 
vkDeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation) const2381     VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2382     {
2383       return ::vkDeferredOperationJoinKHR( device, operation );
2384     }
2385 
vkDestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const2386     void vkDestroyAccelerationStructureKHR( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2387     {
2388       return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
2389     }
2390 
vkDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator) const2391     void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2392     {
2393       return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
2394     }
2395 
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator) const2396     void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2397     {
2398       return ::vkDestroyBuffer( device, buffer, pAllocator );
2399     }
2400 
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator) const2401     void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2402     {
2403       return ::vkDestroyBufferView( device, bufferView, pAllocator );
2404     }
2405 
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator) const2406     void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2407     {
2408       return ::vkDestroyCommandPool( device, commandPool, pAllocator );
2409     }
2410 
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator) const2411     void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2412     {
2413       return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
2414     }
2415 
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator) const2416     void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2417     {
2418       return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
2419     }
2420 
vkDestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator) const2421     void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2422     {
2423       return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
2424     }
2425 
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator) const2426     void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2427     {
2428       return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
2429     }
2430 
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator) const2431     void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2432     {
2433       return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
2434     }
2435 
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2436     void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2437     {
2438       return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
2439     }
2440 
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2441     void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2442     {
2443       return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
2444     }
2445 
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator) const2446     void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2447     {
2448       return ::vkDestroyDevice( device, pAllocator );
2449     }
2450 
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator) const2451     void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2452     {
2453       return ::vkDestroyEvent( device, event, pAllocator );
2454     }
2455 
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator) const2456     void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2457     {
2458       return ::vkDestroyFence( device, fence, pAllocator );
2459     }
2460 
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator) const2461     void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2462     {
2463       return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
2464     }
2465 
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator) const2466     void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2467     {
2468       return ::vkDestroyImage( device, image, pAllocator );
2469     }
2470 
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator) const2471     void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2472     {
2473       return ::vkDestroyImageView( device, imageView, pAllocator );
2474     }
2475 
vkDestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator) const2476     void vkDestroyIndirectCommandsLayoutNV( VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2477     {
2478       return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
2479     }
2480 
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator) const2481     void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2482     {
2483       return ::vkDestroyInstance( instance, pAllocator );
2484     }
2485 
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator) const2486     void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2487     {
2488       return ::vkDestroyPipeline( device, pipeline, pAllocator );
2489     }
2490 
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator) const2491     void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2492     {
2493       return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
2494     }
2495 
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator) const2496     void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2497     {
2498       return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
2499     }
2500 
vkDestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlotEXT privateDataSlot,const VkAllocationCallbacks * pAllocator) const2501     void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2502     {
2503       return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
2504     }
2505 
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator) const2506     void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2507     {
2508       return ::vkDestroyQueryPool( device, queryPool, pAllocator );
2509     }
2510 
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator) const2511     void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2512     {
2513       return ::vkDestroyRenderPass( device, renderPass, pAllocator );
2514     }
2515 
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator) const2516     void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2517     {
2518       return ::vkDestroySampler( device, sampler, pAllocator );
2519     }
2520 
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2521     void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2522     {
2523       return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
2524     }
2525 
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2526     void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2527     {
2528       return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
2529     }
2530 
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator) const2531     void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2532     {
2533       return ::vkDestroySemaphore( device, semaphore, pAllocator );
2534     }
2535 
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator) const2536     void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2537     {
2538       return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
2539     }
2540 
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator) const2541     void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2542     {
2543       return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2544     }
2545 
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator) const2546     void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2547     {
2548       return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
2549     }
2550 
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator) const2551     void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2552     {
2553       return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
2554     }
2555 
vkDeviceWaitIdle(VkDevice device) const2556     VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
2557     {
2558       return ::vkDeviceWaitIdle( device );
2559     }
2560 
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo) const2561     VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
2562     {
2563       return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
2564     }
2565 
vkEndCommandBuffer(VkCommandBuffer commandBuffer) const2566     VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2567     {
2568       return ::vkEndCommandBuffer( commandBuffer );
2569     }
2570 
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2571     VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2572     {
2573       return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
2574     }
2575 
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2576     VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2577     {
2578       return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
2579     }
2580 
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2581     VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2582     {
2583       return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
2584     }
2585 
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2586     VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2587     {
2588       return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
2589     }
2590 
vkEnumerateInstanceVersion(uint32_t * pApiVersion) const2591     VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const VULKAN_HPP_NOEXCEPT
2592     {
2593       return ::vkEnumerateInstanceVersion( pApiVersion );
2594     }
2595 
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2596     VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2597     {
2598       return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2599     }
2600 
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2601     VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2602     {
2603       return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2604     }
2605 
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions) const2606     VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
2607     {
2608       return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
2609     }
2610 
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices) const2611     VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
2612     {
2613       return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
2614     }
2615 
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const2616     VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
2617     {
2618       return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
2619     }
2620 
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const2621     void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
2622     {
2623       return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
2624     }
2625 
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets) const2626     VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
2627     {
2628       return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
2629     }
2630 
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator) const2631     void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2632     {
2633       return ::vkFreeMemory( device, memory, pAllocator );
2634     }
2635 
vkGetAccelerationStructureBuildSizesKHR(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,const uint32_t * pMaxPrimitiveCounts,VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo) const2636     void vkGetAccelerationStructureBuildSizesKHR( VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo ) const VULKAN_HPP_NOEXCEPT
2637     {
2638       return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo );
2639     }
2640 
vkGetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo) const2641     VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
2642     {
2643       return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
2644     }
2645 
vkGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData) const2646     VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2647     {
2648       return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
2649     }
2650 
vkGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements) const2651     void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2652     {
2653       return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2654     }
2655 
2656 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties) const2657     VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const VULKAN_HPP_NOEXCEPT
2658     {
2659       return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
2660     }
2661 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2662 
vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2663     VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2664     {
2665       return ::vkGetBufferDeviceAddress( device, pInfo );
2666     }
2667 
vkGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2668     VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2669     {
2670       return ::vkGetBufferDeviceAddressEXT( device, pInfo );
2671     }
2672 
vkGetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2673     VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2674     {
2675       return ::vkGetBufferDeviceAddressKHR( device, pInfo );
2676     }
2677 
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements) const2678     void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2679     {
2680       return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
2681     }
2682 
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2683     void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2684     {
2685       return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
2686     }
2687 
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2688     void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2689     {
2690       return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2691     }
2692 
vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2693     uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2694     {
2695       return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
2696     }
2697 
vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2698     uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2699     {
2700       return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
2701     }
2702 
vkGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation) const2703     VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
2704     {
2705       return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
2706     }
2707 
vkGetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation) const2708     uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2709     {
2710       return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
2711     }
2712 
vkGetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation) const2713     VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2714     {
2715       return ::vkGetDeferredOperationResultKHR( device, operation );
2716     }
2717 
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2718     void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2719     {
2720       return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
2721     }
2722 
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2723     void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2724     {
2725       return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
2726     }
2727 
vkGetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionInfoKHR * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility) const2728     void vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility ) const VULKAN_HPP_NOEXCEPT
2729     {
2730       return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility );
2731     }
2732 
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2733     void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2734     {
2735       return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2736     }
2737 
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2738     void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2739     {
2740       return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2741     }
2742 
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities) const2743     VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
2744     {
2745       return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
2746     }
2747 
2748 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes) const2749     VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2750     {
2751       return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
2752     }
2753 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2754 
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes) const2755     VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2756     {
2757       return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
2758     }
2759 
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes) const2760     void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
2761     {
2762       return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
2763     }
2764 
vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2765     uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2766     {
2767       return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
2768     }
2769 
vkGetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2770     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2771     {
2772       return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
2773     }
2774 
vkGetDeviceProcAddr(VkDevice device,const char * pName) const2775     PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT
2776     {
2777       return ::vkGetDeviceProcAddr( device, pName );
2778     }
2779 
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue) const2780     void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2781     {
2782       return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
2783     }
2784 
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue) const2785     void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2786     {
2787       return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
2788     }
2789 
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties) const2790     VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2791     {
2792       return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
2793     }
2794 
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties) const2795     VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2796     {
2797       return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2798     }
2799 
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities) const2800     VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2801     {
2802       return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
2803     }
2804 
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities) const2805     VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2806     {
2807       return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2808     }
2809 
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays) const2810     VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const VULKAN_HPP_NOEXCEPT
2811     {
2812       return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2813     }
2814 
vkGetEventStatus(VkDevice device,VkEvent event) const2815     VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
2816     {
2817       return ::vkGetEventStatus( device, event );
2818     }
2819 
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd) const2820     VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2821     {
2822       return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
2823     }
2824 
vkGetFenceStatus(VkDevice device,VkFence fence) const2825     VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
2826     {
2827       return ::vkGetFenceStatus( device, fence );
2828     }
2829 
2830 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2831     VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2832     {
2833       return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2834     }
2835 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2836 
vkGetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2837     void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2838     {
2839       return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2840     }
2841 
vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties) const2842     VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const VULKAN_HPP_NOEXCEPT
2843     {
2844       return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
2845     }
2846 
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements) const2847     void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2848     {
2849       return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
2850     }
2851 
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2852     void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2853     {
2854       return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
2855     }
2856 
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2857     void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2858     {
2859       return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2860     }
2861 
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements) const2862     void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2863     {
2864       return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2865     }
2866 
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2867     void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2868     {
2869       return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2870     }
2871 
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2872     void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2873     {
2874       return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2875     }
2876 
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout) const2877     void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const VULKAN_HPP_NOEXCEPT
2878     {
2879       return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
2880     }
2881 
vkGetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties) const2882     VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties ) const VULKAN_HPP_NOEXCEPT
2883     {
2884       return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
2885     }
2886 
vkGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo) const2887     uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const VULKAN_HPP_NOEXCEPT
2888     {
2889       return ::vkGetImageViewHandleNVX( device, pInfo );
2890     }
2891 
vkGetInstanceProcAddr(VkInstance instance,const char * pName) const2892     PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT
2893     {
2894       return ::vkGetInstanceProcAddr( instance, pName );
2895     }
2896 
2897 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer) const2898     VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const VULKAN_HPP_NOEXCEPT
2899     {
2900       return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
2901     }
2902 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2903 
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd) const2904     VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2905     {
2906       return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
2907     }
2908 
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties) const2909     VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
2910     {
2911       return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
2912     }
2913 
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties) const2914     VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
2915     {
2916       return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
2917     }
2918 
2919 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2920     VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2921     {
2922       return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2923     }
2924 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2925 
2926 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle) const2927     VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2928     {
2929       return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
2930     }
2931 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2932 
2933 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties) const2934     VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
2935     {
2936       return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
2937     }
2938 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2939 
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings) const2940     VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const VULKAN_HPP_NOEXCEPT
2941     {
2942       return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
2943     }
2944 
vkGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue) const2945     VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const VULKAN_HPP_NOEXCEPT
2946     {
2947       return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
2948     }
2949 
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains) const2950     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const VULKAN_HPP_NOEXCEPT
2951     {
2952       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
2953     }
2954 
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties) const2955     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const VULKAN_HPP_NOEXCEPT
2956     {
2957       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
2958     }
2959 
2960 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
vkGetPhysicalDeviceDirectFBPresentationSupportEXT(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,IDirectFB * dfb) const2961     VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb ) const VULKAN_HPP_NOEXCEPT
2962     {
2963       return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb );
2964     }
2965 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
2966 
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties) const2967     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2968     {
2969       return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2970     }
2971 
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties) const2972     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2973     {
2974       return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2975     }
2976 
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties) const2977     VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2978     {
2979       return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2980     }
2981 
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties) const2982     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2983     {
2984       return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2985     }
2986 
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2987     void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2988     {
2989       return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2990     }
2991 
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2992     void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2993     {
2994       return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2995     }
2996 
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2997     void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2998     {
2999       return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
3000     }
3001 
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const3002     void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
3003     {
3004       return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
3005     }
3006 
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties) const3007     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3008     {
3009       return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
3010     }
3011 
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const3012     void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
3013     {
3014       return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
3015     }
3016 
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const3017     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
3018     {
3019       return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
3020     }
3021 
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures) const3022     void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const VULKAN_HPP_NOEXCEPT
3023     {
3024       return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
3025     }
3026 
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const3027     void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
3028     {
3029       return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
3030     }
3031 
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const3032     void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
3033     {
3034       return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
3035     }
3036 
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties) const3037     void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
3038     {
3039       return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
3040     }
3041 
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const3042     void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
3043     {
3044       return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
3045     }
3046 
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const3047     void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
3048     {
3049       return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
3050     }
3051 
vkGetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates) const3052     VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT
3053     {
3054       return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates );
3055     }
3056 
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties) const3057     VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3058     {
3059       return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
3060     }
3061 
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const3062     VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3063     {
3064       return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3065     }
3066 
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const3067     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3068     {
3069       return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3070     }
3071 
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties) const3072     void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3073     {
3074       return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
3075     }
3076 
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3077     void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3078     {
3079       return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
3080     }
3081 
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3082     void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3083     {
3084       return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
3085     }
3086 
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties) const3087     void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT
3088     {
3089       return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
3090     }
3091 
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects) const3092     VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const VULKAN_HPP_NOEXCEPT
3093     {
3094       return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
3095     }
3096 
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties) const3097     void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
3098     {
3099       return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
3100     }
3101 
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3102     void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3103     {
3104       return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
3105     }
3106 
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3107     void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3108     {
3109       return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
3110     }
3111 
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses) const3112     void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses ) const VULKAN_HPP_NOEXCEPT
3113     {
3114       return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
3115     }
3116 
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties) const3117     void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3118     {
3119       return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3120     }
3121 
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3122     void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3123     {
3124       return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3125     }
3126 
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3127     void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3128     {
3129       return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3130     }
3131 
3132 #ifdef VK_USE_PLATFORM_SCREEN_QNX
vkGetPhysicalDeviceScreenPresentationSupportQNX(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct _screen_window * window) const3133     VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window ) const VULKAN_HPP_NOEXCEPT
3134     {
3135       return ::vkGetPhysicalDeviceScreenPresentationSupportQNX( physicalDevice, queueFamilyIndex, window );
3136     }
3137 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
3138 
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties) const3139     void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
3140     {
3141       return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
3142     }
3143 
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3144     void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3145     {
3146       return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3147     }
3148 
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3149     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3150     {
3151       return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3152     }
3153 
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations) const3154     VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const VULKAN_HPP_NOEXCEPT
3155     {
3156       return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
3157     }
3158 
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities) const3159     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3160     {
3161       return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
3162     }
3163 
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities) const3164     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3165     {
3166       return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
3167     }
3168 
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities) const3169     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3170     {
3171       return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
3172     }
3173 
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats) const3174     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3175     {
3176       return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
3177     }
3178 
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats) const3179     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3180     {
3181       return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
3182     }
3183 
3184 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3185     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3186     {
3187       return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
3188     }
3189 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3190 
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3191     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3192     {
3193       return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
3194     }
3195 
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported) const3196     VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const VULKAN_HPP_NOEXCEPT
3197     {
3198       return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
3199     }
3200 
vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolPropertiesEXT * pToolProperties) const3201     VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties ) const VULKAN_HPP_NOEXCEPT
3202     {
3203       return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
3204     }
3205 
3206 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display) const3207     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const VULKAN_HPP_NOEXCEPT
3208     {
3209       return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
3210     }
3211 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
3212 
3213 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex) const3214     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
3215     {
3216       return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
3217     }
3218 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3219 
3220 #ifdef VK_USE_PLATFORM_XCB_KHR
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id) const3221     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT
3222     {
3223       return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
3224     }
3225 #endif /*VK_USE_PLATFORM_XCB_KHR*/
3226 
3227 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID) const3228     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT
3229     {
3230       return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
3231     }
3232 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
3233 
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData) const3234     VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3235     {
3236       return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
3237     }
3238 
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations) const3239     VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
3240     {
3241       return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
3242     }
3243 
vkGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties) const3244     VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
3245     {
3246       return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
3247     }
3248 
vkGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics) const3249     VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const VULKAN_HPP_NOEXCEPT
3250     {
3251       return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
3252     }
3253 
vkGetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t * pData) const3254     void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData ) const VULKAN_HPP_NOEXCEPT
3255     {
3256       return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
3257     }
3258 
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags) const3259     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
3260     {
3261       return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
3262     }
3263 
vkGetQueueCheckpointData2NV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData) const3264     void vkGetQueueCheckpointData2NV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT
3265     {
3266       return ::vkGetQueueCheckpointData2NV( queue, pCheckpointDataCount, pCheckpointData );
3267     }
3268 
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData) const3269     void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT
3270     {
3271       return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
3272     }
3273 
3274 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay) const3275     VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT
3276     {
3277       return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
3278     }
3279 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3280 
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3281     VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3282     {
3283       return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3284     }
3285 
vkGetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3286     VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3287     {
3288       return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3289     }
3290 
vkGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3291     VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3292     {
3293       return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
3294     }
3295 
vkGetRayTracingShaderGroupStackSizeKHR(VkDevice device,VkPipeline pipeline,uint32_t group,VkShaderGroupShaderKHR groupShader) const3296     VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
3297     {
3298       return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader );
3299     }
3300 
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties) const3301     VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT
3302     {
3303       return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
3304     }
3305 
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity) const3306     void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const VULKAN_HPP_NOEXCEPT
3307     {
3308       return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
3309     }
3310 
vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const3311     VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
3312     {
3313       return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
3314     }
3315 
vkGetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const3316     VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
3317     {
3318       return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
3319     }
3320 
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd) const3321     VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
3322     {
3323       return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
3324     }
3325 
3326 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3327     VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
3328     {
3329       return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3330     }
3331 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3332 
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo) const3333     VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const VULKAN_HPP_NOEXCEPT
3334     {
3335       return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
3336     }
3337 
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue) const3338     VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const VULKAN_HPP_NOEXCEPT
3339     {
3340       return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
3341     }
3342 
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages) const3343     VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
3344     {
3345       return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
3346     }
3347 
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain) const3348     VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3349     {
3350       return ::vkGetSwapchainStatusKHR( device, swapchain );
3351     }
3352 
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData) const3353     VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3354     {
3355       return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
3356     }
3357 
3358 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay) const3359     VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT
3360     {
3361       return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay );
3362     }
3363 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3364 
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo) const3365     VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
3366     {
3367       return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
3368     }
3369 
3370 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo) const3371     VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3372     {
3373       return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
3374     }
3375 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3376 
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo) const3377     VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
3378     {
3379       return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
3380     }
3381 
3382 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo) const3383     VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3384     {
3385       return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
3386     }
3387 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3388 
vkInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo) const3389     VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
3390     {
3391       return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
3392     }
3393 
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const3394     VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
3395     {
3396       return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
3397     }
3398 
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData) const3399     VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const VULKAN_HPP_NOEXCEPT
3400     {
3401       return ::vkMapMemory( device, memory, offset, size, flags, ppData );
3402     }
3403 
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches) const3404     VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3405     {
3406       return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
3407     }
3408 
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches) const3409     VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3410     {
3411       return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
3412     }
3413 
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3414     void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3415     {
3416       return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
3417     }
3418 
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence) const3419     VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3420     {
3421       return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
3422     }
3423 
vkQueueEndDebugUtilsLabelEXT(VkQueue queue) const3424     void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3425     {
3426       return ::vkQueueEndDebugUtilsLabelEXT( queue );
3427     }
3428 
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3429     void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3430     {
3431       return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
3432     }
3433 
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo) const3434     VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const VULKAN_HPP_NOEXCEPT
3435     {
3436       return ::vkQueuePresentKHR( queue, pPresentInfo );
3437     }
3438 
vkQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration) const3439     VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3440     {
3441       return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
3442     }
3443 
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence) const3444     VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3445     {
3446       return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
3447     }
3448 
vkQueueSubmit2KHR(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2KHR * pSubmits,VkFence fence) const3449     VkResult vkQueueSubmit2KHR( VkQueue queue, uint32_t submitCount, const VkSubmitInfo2KHR* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3450     {
3451       return ::vkQueueSubmit2KHR( queue, submitCount, pSubmits, fence );
3452     }
3453 
vkQueueWaitIdle(VkQueue queue) const3454     VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3455     {
3456       return ::vkQueueWaitIdle( queue );
3457     }
3458 
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3459     VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
3460     {
3461       return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
3462     }
3463 
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3464     VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
3465     {
3466       return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
3467     }
3468 
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const3469     VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3470     {
3471       return ::vkReleaseDisplayEXT( physicalDevice, display );
3472     }
3473 
3474 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const3475     VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3476     {
3477       return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
3478     }
3479 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3480 
vkReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration) const3481     VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3482     {
3483       return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
3484     }
3485 
vkReleaseProfilingLockKHR(VkDevice device) const3486     void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3487     {
3488       return ::vkReleaseProfilingLockKHR( device );
3489     }
3490 
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags) const3491     VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3492     {
3493       return ::vkResetCommandBuffer( commandBuffer, flags );
3494     }
3495 
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags) const3496     VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3497     {
3498       return ::vkResetCommandPool( device, commandPool, flags );
3499     }
3500 
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags) const3501     VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3502     {
3503       return ::vkResetDescriptorPool( device, descriptorPool, flags );
3504     }
3505 
vkResetEvent(VkDevice device,VkEvent event) const3506     VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
3507     {
3508       return ::vkResetEvent( device, event );
3509     }
3510 
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences) const3511     VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const VULKAN_HPP_NOEXCEPT
3512     {
3513       return ::vkResetFences( device, fenceCount, pFences );
3514     }
3515 
vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const3516     void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
3517     {
3518       return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
3519     }
3520 
vkResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const3521     void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
3522     {
3523       return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
3524     }
3525 
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo) const3526     VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
3527     {
3528       return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
3529     }
3530 
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo) const3531     VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
3532     {
3533       return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
3534     }
3535 
vkSetEvent(VkDevice device,VkEvent event) const3536     VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
3537     {
3538       return ::vkSetEvent( device, event );
3539     }
3540 
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata) const3541     void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const VULKAN_HPP_NOEXCEPT
3542     {
3543       return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
3544     }
3545 
vkSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable) const3546     void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
3547     {
3548       return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
3549     }
3550 
vkSetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t data) const3551     VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data ) const VULKAN_HPP_NOEXCEPT
3552     {
3553       return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
3554     }
3555 
vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const3556     VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
3557     {
3558       return ::vkSignalSemaphore( device, pSignalInfo );
3559     }
3560 
vkSignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const3561     VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
3562     {
3563       return ::vkSignalSemaphoreKHR( device, pSignalInfo );
3564     }
3565 
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData) const3566     void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const VULKAN_HPP_NOEXCEPT
3567     {
3568       return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
3569     }
3570 
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3571     void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3572     {
3573       return ::vkTrimCommandPool( device, commandPool, flags );
3574     }
3575 
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3576     void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3577     {
3578       return ::vkTrimCommandPoolKHR( device, commandPool, flags );
3579     }
3580 
vkUninitializePerformanceApiINTEL(VkDevice device) const3581     void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3582     {
3583       return ::vkUninitializePerformanceApiINTEL( device );
3584     }
3585 
vkUnmapMemory(VkDevice device,VkDeviceMemory memory) const3586     void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
3587     {
3588       return ::vkUnmapMemory( device, memory );
3589     }
3590 
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3591     void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
3592     {
3593       return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
3594     }
3595 
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3596     void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
3597     {
3598       return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
3599     }
3600 
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies) const3601     void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
3602     {
3603       return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
3604     }
3605 
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout) const3606     VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3607     {
3608       return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
3609     }
3610 
vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const3611     VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3612     {
3613       return ::vkWaitSemaphores( device, pWaitInfo, timeout );
3614     }
3615 
vkWaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const3616     VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3617     {
3618       return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
3619     }
3620 
vkWriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride) const3621     VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride ) const VULKAN_HPP_NOEXCEPT
3622     {
3623       return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
3624     }
3625   };
3626 #endif
3627 
3628   class DispatchLoaderDynamic;
3629 #if !defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC)
3630 # if defined(VK_NO_PROTOTYPES)
3631 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
3632 # else
3633 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
3634 # endif
3635 #endif
3636 
3637 #if !defined( VULKAN_HPP_STORAGE_API )
3638 #  if defined( VULKAN_HPP_STORAGE_SHARED )
3639 #    if defined( _MSC_VER )
3640 #      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
3641 #        define VULKAN_HPP_STORAGE_API __declspec( dllexport )
3642 #      else
3643 #        define VULKAN_HPP_STORAGE_API __declspec( dllimport )
3644 #      endif
3645 #    elif defined( __clang__ ) || defined( __GNUC__ )
3646 #      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
3647 #        define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) )
3648 #      else
3649 #        define VULKAN_HPP_STORAGE_API
3650 #      endif
3651 #    else
3652 #      define VULKAN_HPP_STORAGE_API
3653 #      pragma warning Unknown import / export semantics
3654 #    endif
3655 #  else
3656 #    define VULKAN_HPP_STORAGE_API
3657 #  endif
3658 #endif
3659 
3660 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER)
3661 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3662 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
3663 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE namespace VULKAN_HPP_NAMESPACE { VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; }
3664   extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
3665 # else
3666 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic()
3667 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
3668 # endif
3669 #endif
3670 
3671 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER_TYPE)
3672 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3673   #define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
3674 # else
3675 #  define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
3676 # endif
3677 #endif
3678 
3679 #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
3680 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
3681 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
3682 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
3683 #else
3684 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {}
3685 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
3686 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER
3687 #endif
3688 
3689   struct AllocationCallbacks;
3690 
3691   template <typename OwnerType, typename Dispatch>
3692   class ObjectDestroy
3693   {
3694   public:
3695     ObjectDestroy() = default;
3696 
ObjectDestroy(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3697     ObjectDestroy( OwnerType owner,
3698                    Optional<const AllocationCallbacks> allocationCallbacks
3699                                     VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
3700                    Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3701       : m_owner( owner )
3702       , m_allocationCallbacks( allocationCallbacks )
3703       , m_dispatch( &dispatch )
3704     {}
3705 
getOwner() const3706     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getAllocator() const3707     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3708 
3709   protected:
3710     template <typename T>
destroy(T t)3711     void destroy(T t) VULKAN_HPP_NOEXCEPT
3712     {
3713       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3714       m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
3715     }
3716 
3717   private:
3718     OwnerType                           m_owner               = {};
3719     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3720     Dispatch const *                    m_dispatch            = nullptr;
3721   };
3722 
3723   class NoParent;
3724 
3725   template <typename Dispatch>
3726   class ObjectDestroy<NoParent,Dispatch>
3727   {
3728   public:
3729     ObjectDestroy() = default;
3730 
ObjectDestroy(Optional<const AllocationCallbacks> allocationCallbacks,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3731     ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
3732                    Dispatch const &                    dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3733       : m_allocationCallbacks( allocationCallbacks )
3734       , m_dispatch( &dispatch )
3735     {}
3736 
getAllocator() const3737     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3738 
3739   protected:
3740     template <typename T>
destroy(T t)3741     void destroy(T t) VULKAN_HPP_NOEXCEPT
3742     {
3743       VULKAN_HPP_ASSERT( m_dispatch );
3744       t.destroy( m_allocationCallbacks, *m_dispatch );
3745     }
3746 
3747   private:
3748     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3749     Dispatch const *                    m_dispatch            = nullptr;
3750   };
3751 
3752   template <typename OwnerType, typename Dispatch>
3753   class ObjectFree
3754   {
3755   public:
3756     ObjectFree() = default;
3757 
ObjectFree(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3758     ObjectFree( OwnerType                                               owner,
3759                 Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
3760                 Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3761       : m_owner( owner )
3762       , m_allocationCallbacks( allocationCallbacks )
3763       , m_dispatch( &dispatch )
3764     {}
3765 
getOwner() const3766     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
3767     {
3768       return m_owner;
3769     }
3770 
getAllocator() const3771     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
3772     {
3773       return m_allocationCallbacks;
3774     }
3775 
3776   protected:
3777     template <typename T>
destroy(T t)3778     void destroy( T t ) VULKAN_HPP_NOEXCEPT
3779     {
3780       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3781       m_owner.free( t, m_allocationCallbacks, *m_dispatch );
3782     }
3783 
3784   private:
3785     OwnerType                           m_owner               = {};
3786     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3787     Dispatch const *                    m_dispatch            = nullptr;
3788   };
3789 
3790   template <typename OwnerType, typename Dispatch>
3791   class ObjectRelease
3792   {
3793   public:
3794     ObjectRelease() = default;
3795 
ObjectRelease(OwnerType owner,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3796     ObjectRelease( OwnerType owner, Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3797       : m_owner( owner )
3798       , m_dispatch( &dispatch )
3799     {}
3800 
getOwner() const3801     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
3802     {
3803       return m_owner;
3804     }
3805 
3806   protected:
3807     template <typename T>
destroy(T t)3808     void destroy( T t ) VULKAN_HPP_NOEXCEPT
3809     {
3810       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3811       m_owner.release( t, *m_dispatch );
3812     }
3813 
3814   private:
3815     OwnerType        m_owner    = {};
3816     Dispatch const * m_dispatch = nullptr;
3817   };
3818 
3819   template <typename OwnerType, typename PoolType, typename Dispatch>
3820   class PoolFree
3821   {
3822     public:
3823       PoolFree() = default;
3824 
PoolFree(OwnerType owner,PoolType pool,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3825       PoolFree( OwnerType        owner,
3826                 PoolType         pool,
3827                 Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3828         : m_owner( owner )
3829         , m_pool( pool )
3830         , m_dispatch( &dispatch )
3831       {}
3832 
getOwner() const3833       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getPool() const3834       PoolType getPool() const VULKAN_HPP_NOEXCEPT { return m_pool; }
3835 
3836     protected:
3837       template <typename T>
destroy(T t)3838       void destroy(T t) VULKAN_HPP_NOEXCEPT
3839       {
3840         m_owner.free( m_pool, t, *m_dispatch );
3841       }
3842 
3843     private:
3844       OwnerType        m_owner    = OwnerType();
3845       PoolType         m_pool     = PoolType();
3846       Dispatch const * m_dispatch = nullptr;
3847   };
3848 
3849   using Bool32 = uint32_t;
3850   using DeviceAddress = uint64_t;
3851   using DeviceSize = uint64_t;
3852   using SampleMask = uint32_t;
3853 
3854   template <typename EnumType, EnumType value>
3855   struct CppType
3856   {};
3857 
3858   template <typename Type>
3859   struct isVulkanHandleType
3860   {
3861     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = false;
3862   };
3863 
toHexString(uint32_t value)3864   VULKAN_HPP_INLINE std::string toHexString( uint32_t value )
3865   {
3866     std::stringstream stream;
3867     stream << std::hex << value;
3868     return stream.str();
3869   }
3870 
3871   enum class AccelerationStructureBuildTypeKHR
3872   {
3873       eHost = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR
3874     , eDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR
3875     , eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
3876   };
3877 
to_string(AccelerationStructureBuildTypeKHR value)3878   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value )
3879   {
3880     switch ( value )
3881     {
3882       case AccelerationStructureBuildTypeKHR::eHost : return "Host";
3883       case AccelerationStructureBuildTypeKHR::eDevice : return "Device";
3884       case AccelerationStructureBuildTypeKHR::eHostOrDevice : return "HostOrDevice";
3885       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3886     }
3887   }
3888 
3889   enum class AccelerationStructureCompatibilityKHR
3890   {
3891       eCompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR
3892     , eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR
3893   };
3894 
to_string(AccelerationStructureCompatibilityKHR value)3895   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCompatibilityKHR value )
3896   {
3897     switch ( value )
3898     {
3899       case AccelerationStructureCompatibilityKHR::eCompatible : return "Compatible";
3900       case AccelerationStructureCompatibilityKHR::eIncompatible : return "Incompatible";
3901       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3902     }
3903   }
3904 
3905   enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR
3906   {
3907       eDeviceAddressCaptureReplay = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
3908   };
3909 
to_string(AccelerationStructureCreateFlagBitsKHR value)3910   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagBitsKHR value )
3911   {
3912     switch ( value )
3913     {
3914       case AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
3915       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3916     }
3917   }
3918 
3919   enum class AccelerationStructureMemoryRequirementsTypeNV
3920   {
3921       eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV
3922     , eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV
3923     , eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
3924   };
3925 
to_string(AccelerationStructureMemoryRequirementsTypeNV value)3926   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeNV value )
3927   {
3928     switch ( value )
3929     {
3930       case AccelerationStructureMemoryRequirementsTypeNV::eObject : return "Object";
3931       case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch : return "BuildScratch";
3932       case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch : return "UpdateScratch";
3933       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3934     }
3935   }
3936 
3937   enum class AccelerationStructureTypeKHR
3938   {
3939       eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR
3940     , eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR
3941     , eGeneric = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
3942   };
3943   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
3944 
to_string(AccelerationStructureTypeKHR value)3945   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value )
3946   {
3947     switch ( value )
3948     {
3949       case AccelerationStructureTypeKHR::eTopLevel : return "TopLevel";
3950       case AccelerationStructureTypeKHR::eBottomLevel : return "BottomLevel";
3951       case AccelerationStructureTypeKHR::eGeneric : return "Generic";
3952       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3953     }
3954   }
3955 
3956   enum class AccessFlagBits : VkAccessFlags
3957   {
3958       eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT
3959     , eIndexRead = VK_ACCESS_INDEX_READ_BIT
3960     , eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT
3961     , eUniformRead = VK_ACCESS_UNIFORM_READ_BIT
3962     , eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
3963     , eShaderRead = VK_ACCESS_SHADER_READ_BIT
3964     , eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT
3965     , eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
3966     , eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
3967     , eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
3968     , eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
3969     , eTransferRead = VK_ACCESS_TRANSFER_READ_BIT
3970     , eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT
3971     , eHostRead = VK_ACCESS_HOST_READ_BIT
3972     , eHostWrite = VK_ACCESS_HOST_WRITE_BIT
3973     , eMemoryRead = VK_ACCESS_MEMORY_READ_BIT
3974     , eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT
3975     , eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT
3976     , eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
3977     , eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT
3978     , eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT
3979     , eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
3980     , eAccelerationStructureReadKHR = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR
3981     , eAccelerationStructureWriteKHR = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
3982     , eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV
3983     , eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
3984     , eCommandPreprocessReadNV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV
3985     , eCommandPreprocessWriteNV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV
3986     , eNoneKHR = VK_ACCESS_NONE_KHR
3987     , eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV
3988     , eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV
3989     , eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
3990   };
3991 
to_string(AccessFlagBits value)3992   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
3993   {
3994     switch ( value )
3995     {
3996       case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead";
3997       case AccessFlagBits::eIndexRead : return "IndexRead";
3998       case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead";
3999       case AccessFlagBits::eUniformRead : return "UniformRead";
4000       case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead";
4001       case AccessFlagBits::eShaderRead : return "ShaderRead";
4002       case AccessFlagBits::eShaderWrite : return "ShaderWrite";
4003       case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead";
4004       case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite";
4005       case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead";
4006       case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite";
4007       case AccessFlagBits::eTransferRead : return "TransferRead";
4008       case AccessFlagBits::eTransferWrite : return "TransferWrite";
4009       case AccessFlagBits::eHostRead : return "HostRead";
4010       case AccessFlagBits::eHostWrite : return "HostWrite";
4011       case AccessFlagBits::eMemoryRead : return "MemoryRead";
4012       case AccessFlagBits::eMemoryWrite : return "MemoryWrite";
4013       case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT";
4014       case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT";
4015       case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT";
4016       case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT";
4017       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT";
4018       case AccessFlagBits::eAccelerationStructureReadKHR : return "AccelerationStructureReadKHR";
4019       case AccessFlagBits::eAccelerationStructureWriteKHR : return "AccelerationStructureWriteKHR";
4020       case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV";
4021       case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT";
4022       case AccessFlagBits::eCommandPreprocessReadNV : return "CommandPreprocessReadNV";
4023       case AccessFlagBits::eCommandPreprocessWriteNV : return "CommandPreprocessWriteNV";
4024       case AccessFlagBits::eNoneKHR : return "NoneKHR";
4025       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4026     }
4027   }
4028 
4029   enum class AccessFlagBits2KHR : VkAccessFlags2KHR
4030   {
4031       e2None = VK_ACCESS_2_NONE_KHR
4032     , e2IndirectCommandRead = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR
4033     , e2IndexRead = VK_ACCESS_2_INDEX_READ_BIT_KHR
4034     , e2VertexAttributeRead = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR
4035     , e2UniformRead = VK_ACCESS_2_UNIFORM_READ_BIT_KHR
4036     , e2InputAttachmentRead = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR
4037     , e2ShaderRead = VK_ACCESS_2_SHADER_READ_BIT_KHR
4038     , e2ShaderWrite = VK_ACCESS_2_SHADER_WRITE_BIT_KHR
4039     , e2ColorAttachmentRead = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR
4040     , e2ColorAttachmentWrite = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR
4041     , e2DepthStencilAttachmentRead = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR
4042     , e2DepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR
4043     , e2TransferRead = VK_ACCESS_2_TRANSFER_READ_BIT_KHR
4044     , e2TransferWrite = VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR
4045     , e2HostRead = VK_ACCESS_2_HOST_READ_BIT_KHR
4046     , e2HostWrite = VK_ACCESS_2_HOST_WRITE_BIT_KHR
4047     , e2MemoryRead = VK_ACCESS_2_MEMORY_READ_BIT_KHR
4048     , e2MemoryWrite = VK_ACCESS_2_MEMORY_WRITE_BIT_KHR
4049     , e2ShaderSampledRead = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR
4050     , e2ShaderStorageRead = VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR
4051     , e2ShaderStorageWrite = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR
4052     , e2TransformFeedbackWriteExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT
4053     , e2TransformFeedbackCounterReadExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
4054     , e2TransformFeedbackCounterWriteExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT
4055     , e2ConditionalRenderingReadExt = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT
4056     , e2CommandPreprocessReadNv = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV
4057     , e2CommandPreprocessWriteNv = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV
4058     , e2FragmentShadingRateAttachmentRead = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
4059     , e2AccelerationStructureRead = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR
4060     , e2AccelerationStructureWrite = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
4061     , e2FragmentDensityMapReadExt = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
4062     , e2ColorAttachmentReadNoncoherentExt = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
4063     , e2AccelerationStructureReadNv = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV
4064     , e2AccelerationStructureWriteNv = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV
4065     , e2ShadingRateImageReadNv = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
4066   };
4067 
to_string(AccessFlagBits2KHR value)4068   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits2KHR value )
4069   {
4070     switch ( value )
4071     {
4072       case AccessFlagBits2KHR::e2None : return "2None";
4073       case AccessFlagBits2KHR::e2IndirectCommandRead : return "2IndirectCommandRead";
4074       case AccessFlagBits2KHR::e2IndexRead : return "2IndexRead";
4075       case AccessFlagBits2KHR::e2VertexAttributeRead : return "2VertexAttributeRead";
4076       case AccessFlagBits2KHR::e2UniformRead : return "2UniformRead";
4077       case AccessFlagBits2KHR::e2InputAttachmentRead : return "2InputAttachmentRead";
4078       case AccessFlagBits2KHR::e2ShaderRead : return "2ShaderRead";
4079       case AccessFlagBits2KHR::e2ShaderWrite : return "2ShaderWrite";
4080       case AccessFlagBits2KHR::e2ColorAttachmentRead : return "2ColorAttachmentRead";
4081       case AccessFlagBits2KHR::e2ColorAttachmentWrite : return "2ColorAttachmentWrite";
4082       case AccessFlagBits2KHR::e2DepthStencilAttachmentRead : return "2DepthStencilAttachmentRead";
4083       case AccessFlagBits2KHR::e2DepthStencilAttachmentWrite : return "2DepthStencilAttachmentWrite";
4084       case AccessFlagBits2KHR::e2TransferRead : return "2TransferRead";
4085       case AccessFlagBits2KHR::e2TransferWrite : return "2TransferWrite";
4086       case AccessFlagBits2KHR::e2HostRead : return "2HostRead";
4087       case AccessFlagBits2KHR::e2HostWrite : return "2HostWrite";
4088       case AccessFlagBits2KHR::e2MemoryRead : return "2MemoryRead";
4089       case AccessFlagBits2KHR::e2MemoryWrite : return "2MemoryWrite";
4090       case AccessFlagBits2KHR::e2ShaderSampledRead : return "2ShaderSampledRead";
4091       case AccessFlagBits2KHR::e2ShaderStorageRead : return "2ShaderStorageRead";
4092       case AccessFlagBits2KHR::e2ShaderStorageWrite : return "2ShaderStorageWrite";
4093       case AccessFlagBits2KHR::e2TransformFeedbackWriteExt : return "2TransformFeedbackWriteExt";
4094       case AccessFlagBits2KHR::e2TransformFeedbackCounterReadExt : return "2TransformFeedbackCounterReadExt";
4095       case AccessFlagBits2KHR::e2TransformFeedbackCounterWriteExt : return "2TransformFeedbackCounterWriteExt";
4096       case AccessFlagBits2KHR::e2ConditionalRenderingReadExt : return "2ConditionalRenderingReadExt";
4097       case AccessFlagBits2KHR::e2CommandPreprocessReadNv : return "2CommandPreprocessReadNv";
4098       case AccessFlagBits2KHR::e2CommandPreprocessWriteNv : return "2CommandPreprocessWriteNv";
4099       case AccessFlagBits2KHR::e2FragmentShadingRateAttachmentRead : return "2FragmentShadingRateAttachmentRead";
4100       case AccessFlagBits2KHR::e2AccelerationStructureRead : return "2AccelerationStructureRead";
4101       case AccessFlagBits2KHR::e2AccelerationStructureWrite : return "2AccelerationStructureWrite";
4102       case AccessFlagBits2KHR::e2FragmentDensityMapReadExt : return "2FragmentDensityMapReadExt";
4103       case AccessFlagBits2KHR::e2ColorAttachmentReadNoncoherentExt : return "2ColorAttachmentReadNoncoherentExt";
4104       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4105     }
4106   }
4107 
4108   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
4109   {
4110   };
4111 
to_string(AcquireProfilingLockFlagBitsKHR)4112   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR )
4113   {
4114     return "(void)";
4115   }
4116 
4117   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
4118   {
4119       eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
4120   };
4121 
to_string(AttachmentDescriptionFlagBits value)4122   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
4123   {
4124     switch ( value )
4125     {
4126       case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias";
4127       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4128     }
4129   }
4130 
4131   enum class AttachmentLoadOp
4132   {
4133       eLoad = VK_ATTACHMENT_LOAD_OP_LOAD
4134     , eClear = VK_ATTACHMENT_LOAD_OP_CLEAR
4135     , eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
4136   };
4137 
to_string(AttachmentLoadOp value)4138   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
4139   {
4140     switch ( value )
4141     {
4142       case AttachmentLoadOp::eLoad : return "Load";
4143       case AttachmentLoadOp::eClear : return "Clear";
4144       case AttachmentLoadOp::eDontCare : return "DontCare";
4145       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4146     }
4147   }
4148 
4149   enum class AttachmentStoreOp
4150   {
4151       eStore = VK_ATTACHMENT_STORE_OP_STORE
4152     , eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE
4153     , eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
4154   };
4155 
to_string(AttachmentStoreOp value)4156   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
4157   {
4158     switch ( value )
4159     {
4160       case AttachmentStoreOp::eStore : return "Store";
4161       case AttachmentStoreOp::eDontCare : return "DontCare";
4162       case AttachmentStoreOp::eNoneQCOM : return "NoneQCOM";
4163       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4164     }
4165   }
4166 
4167   enum class BlendFactor
4168   {
4169       eZero = VK_BLEND_FACTOR_ZERO
4170     , eOne = VK_BLEND_FACTOR_ONE
4171     , eSrcColor = VK_BLEND_FACTOR_SRC_COLOR
4172     , eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR
4173     , eDstColor = VK_BLEND_FACTOR_DST_COLOR
4174     , eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR
4175     , eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA
4176     , eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
4177     , eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA
4178     , eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA
4179     , eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR
4180     , eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
4181     , eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA
4182     , eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
4183     , eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE
4184     , eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR
4185     , eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
4186     , eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA
4187     , eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
4188   };
4189 
to_string(BlendFactor value)4190   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
4191   {
4192     switch ( value )
4193     {
4194       case BlendFactor::eZero : return "Zero";
4195       case BlendFactor::eOne : return "One";
4196       case BlendFactor::eSrcColor : return "SrcColor";
4197       case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor";
4198       case BlendFactor::eDstColor : return "DstColor";
4199       case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor";
4200       case BlendFactor::eSrcAlpha : return "SrcAlpha";
4201       case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha";
4202       case BlendFactor::eDstAlpha : return "DstAlpha";
4203       case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha";
4204       case BlendFactor::eConstantColor : return "ConstantColor";
4205       case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor";
4206       case BlendFactor::eConstantAlpha : return "ConstantAlpha";
4207       case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha";
4208       case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate";
4209       case BlendFactor::eSrc1Color : return "Src1Color";
4210       case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color";
4211       case BlendFactor::eSrc1Alpha : return "Src1Alpha";
4212       case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha";
4213       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4214     }
4215   }
4216 
4217   enum class BlendOp
4218   {
4219       eAdd = VK_BLEND_OP_ADD
4220     , eSubtract = VK_BLEND_OP_SUBTRACT
4221     , eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT
4222     , eMin = VK_BLEND_OP_MIN
4223     , eMax = VK_BLEND_OP_MAX
4224     , eZeroEXT = VK_BLEND_OP_ZERO_EXT
4225     , eSrcEXT = VK_BLEND_OP_SRC_EXT
4226     , eDstEXT = VK_BLEND_OP_DST_EXT
4227     , eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT
4228     , eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT
4229     , eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT
4230     , eDstInEXT = VK_BLEND_OP_DST_IN_EXT
4231     , eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT
4232     , eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT
4233     , eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT
4234     , eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT
4235     , eXorEXT = VK_BLEND_OP_XOR_EXT
4236     , eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT
4237     , eScreenEXT = VK_BLEND_OP_SCREEN_EXT
4238     , eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT
4239     , eDarkenEXT = VK_BLEND_OP_DARKEN_EXT
4240     , eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT
4241     , eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT
4242     , eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT
4243     , eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT
4244     , eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT
4245     , eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT
4246     , eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT
4247     , eInvertEXT = VK_BLEND_OP_INVERT_EXT
4248     , eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT
4249     , eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT
4250     , eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT
4251     , eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT
4252     , eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT
4253     , ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT
4254     , eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT
4255     , eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT
4256     , eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT
4257     , eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT
4258     , eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT
4259     , ePlusEXT = VK_BLEND_OP_PLUS_EXT
4260     , ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT
4261     , ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT
4262     , ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT
4263     , eMinusEXT = VK_BLEND_OP_MINUS_EXT
4264     , eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT
4265     , eContrastEXT = VK_BLEND_OP_CONTRAST_EXT
4266     , eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT
4267     , eRedEXT = VK_BLEND_OP_RED_EXT
4268     , eGreenEXT = VK_BLEND_OP_GREEN_EXT
4269     , eBlueEXT = VK_BLEND_OP_BLUE_EXT
4270   };
4271 
to_string(BlendOp value)4272   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
4273   {
4274     switch ( value )
4275     {
4276       case BlendOp::eAdd : return "Add";
4277       case BlendOp::eSubtract : return "Subtract";
4278       case BlendOp::eReverseSubtract : return "ReverseSubtract";
4279       case BlendOp::eMin : return "Min";
4280       case BlendOp::eMax : return "Max";
4281       case BlendOp::eZeroEXT : return "ZeroEXT";
4282       case BlendOp::eSrcEXT : return "SrcEXT";
4283       case BlendOp::eDstEXT : return "DstEXT";
4284       case BlendOp::eSrcOverEXT : return "SrcOverEXT";
4285       case BlendOp::eDstOverEXT : return "DstOverEXT";
4286       case BlendOp::eSrcInEXT : return "SrcInEXT";
4287       case BlendOp::eDstInEXT : return "DstInEXT";
4288       case BlendOp::eSrcOutEXT : return "SrcOutEXT";
4289       case BlendOp::eDstOutEXT : return "DstOutEXT";
4290       case BlendOp::eSrcAtopEXT : return "SrcAtopEXT";
4291       case BlendOp::eDstAtopEXT : return "DstAtopEXT";
4292       case BlendOp::eXorEXT : return "XorEXT";
4293       case BlendOp::eMultiplyEXT : return "MultiplyEXT";
4294       case BlendOp::eScreenEXT : return "ScreenEXT";
4295       case BlendOp::eOverlayEXT : return "OverlayEXT";
4296       case BlendOp::eDarkenEXT : return "DarkenEXT";
4297       case BlendOp::eLightenEXT : return "LightenEXT";
4298       case BlendOp::eColordodgeEXT : return "ColordodgeEXT";
4299       case BlendOp::eColorburnEXT : return "ColorburnEXT";
4300       case BlendOp::eHardlightEXT : return "HardlightEXT";
4301       case BlendOp::eSoftlightEXT : return "SoftlightEXT";
4302       case BlendOp::eDifferenceEXT : return "DifferenceEXT";
4303       case BlendOp::eExclusionEXT : return "ExclusionEXT";
4304       case BlendOp::eInvertEXT : return "InvertEXT";
4305       case BlendOp::eInvertRgbEXT : return "InvertRgbEXT";
4306       case BlendOp::eLineardodgeEXT : return "LineardodgeEXT";
4307       case BlendOp::eLinearburnEXT : return "LinearburnEXT";
4308       case BlendOp::eVividlightEXT : return "VividlightEXT";
4309       case BlendOp::eLinearlightEXT : return "LinearlightEXT";
4310       case BlendOp::ePinlightEXT : return "PinlightEXT";
4311       case BlendOp::eHardmixEXT : return "HardmixEXT";
4312       case BlendOp::eHslHueEXT : return "HslHueEXT";
4313       case BlendOp::eHslSaturationEXT : return "HslSaturationEXT";
4314       case BlendOp::eHslColorEXT : return "HslColorEXT";
4315       case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT";
4316       case BlendOp::ePlusEXT : return "PlusEXT";
4317       case BlendOp::ePlusClampedEXT : return "PlusClampedEXT";
4318       case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT";
4319       case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT";
4320       case BlendOp::eMinusEXT : return "MinusEXT";
4321       case BlendOp::eMinusClampedEXT : return "MinusClampedEXT";
4322       case BlendOp::eContrastEXT : return "ContrastEXT";
4323       case BlendOp::eInvertOvgEXT : return "InvertOvgEXT";
4324       case BlendOp::eRedEXT : return "RedEXT";
4325       case BlendOp::eGreenEXT : return "GreenEXT";
4326       case BlendOp::eBlueEXT : return "BlueEXT";
4327       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4328     }
4329   }
4330 
4331   enum class BlendOverlapEXT
4332   {
4333       eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT
4334     , eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT
4335     , eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT
4336   };
4337 
to_string(BlendOverlapEXT value)4338   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
4339   {
4340     switch ( value )
4341     {
4342       case BlendOverlapEXT::eUncorrelated : return "Uncorrelated";
4343       case BlendOverlapEXT::eDisjoint : return "Disjoint";
4344       case BlendOverlapEXT::eConjoint : return "Conjoint";
4345       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4346     }
4347   }
4348 
4349   enum class BorderColor
4350   {
4351       eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
4352     , eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK
4353     , eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK
4354     , eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK
4355     , eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE
4356     , eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE
4357     , eFloatCustomEXT = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT
4358     , eIntCustomEXT = VK_BORDER_COLOR_INT_CUSTOM_EXT
4359   };
4360 
to_string(BorderColor value)4361   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
4362   {
4363     switch ( value )
4364     {
4365       case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack";
4366       case BorderColor::eIntTransparentBlack : return "IntTransparentBlack";
4367       case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack";
4368       case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack";
4369       case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite";
4370       case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite";
4371       case BorderColor::eFloatCustomEXT : return "FloatCustomEXT";
4372       case BorderColor::eIntCustomEXT : return "IntCustomEXT";
4373       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4374     }
4375   }
4376 
4377   enum class BufferCreateFlagBits : VkBufferCreateFlags
4378   {
4379       eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT
4380     , eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
4381     , eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
4382     , eProtected = VK_BUFFER_CREATE_PROTECTED_BIT
4383     , eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
4384     , eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
4385     , eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
4386   };
4387 
to_string(BufferCreateFlagBits value)4388   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
4389   {
4390     switch ( value )
4391     {
4392       case BufferCreateFlagBits::eSparseBinding : return "SparseBinding";
4393       case BufferCreateFlagBits::eSparseResidency : return "SparseResidency";
4394       case BufferCreateFlagBits::eSparseAliased : return "SparseAliased";
4395       case BufferCreateFlagBits::eProtected : return "Protected";
4396       case BufferCreateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
4397       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4398     }
4399   }
4400 
4401   enum class BufferUsageFlagBits : VkBufferUsageFlags
4402   {
4403       eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT
4404     , eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT
4405     , eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
4406     , eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
4407     , eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
4408     , eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
4409     , eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT
4410     , eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
4411     , eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
4412     , eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
4413     , eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
4414     , eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
4415     , eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
4416     , eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
4417     , eAccelerationStructureStorageKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
4418     , eShaderBindingTableKHR = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR
4419     , eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV
4420     , eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT
4421     , eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
4422   };
4423 
to_string(BufferUsageFlagBits value)4424   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
4425   {
4426     switch ( value )
4427     {
4428       case BufferUsageFlagBits::eTransferSrc : return "TransferSrc";
4429       case BufferUsageFlagBits::eTransferDst : return "TransferDst";
4430       case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
4431       case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
4432       case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer";
4433       case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer";
4434       case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer";
4435       case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer";
4436       case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer";
4437       case BufferUsageFlagBits::eShaderDeviceAddress : return "ShaderDeviceAddress";
4438       case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT";
4439       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT";
4440       case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
4441       case BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR : return "AccelerationStructureBuildInputReadOnlyKHR";
4442       case BufferUsageFlagBits::eAccelerationStructureStorageKHR : return "AccelerationStructureStorageKHR";
4443       case BufferUsageFlagBits::eShaderBindingTableKHR : return "ShaderBindingTableKHR";
4444       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4445     }
4446   }
4447 
4448   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
4449   {
4450       eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR
4451     , eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR
4452     , ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR
4453     , ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR
4454     , eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
4455   };
4456   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
4457 
to_string(BuildAccelerationStructureFlagBitsKHR value)4458   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value )
4459   {
4460     switch ( value )
4461     {
4462       case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate : return "AllowUpdate";
4463       case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction : return "AllowCompaction";
4464       case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace : return "PreferFastTrace";
4465       case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild : return "PreferFastBuild";
4466       case BuildAccelerationStructureFlagBitsKHR::eLowMemory : return "LowMemory";
4467       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4468     }
4469   }
4470 
4471   enum class BuildAccelerationStructureModeKHR
4472   {
4473       eBuild = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR
4474     , eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR
4475   };
4476 
to_string(BuildAccelerationStructureModeKHR value)4477   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureModeKHR value )
4478   {
4479     switch ( value )
4480     {
4481       case BuildAccelerationStructureModeKHR::eBuild : return "Build";
4482       case BuildAccelerationStructureModeKHR::eUpdate : return "Update";
4483       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4484     }
4485   }
4486 
4487   enum class ChromaLocation
4488   {
4489       eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN
4490     , eMidpoint = VK_CHROMA_LOCATION_MIDPOINT
4491   };
4492   using ChromaLocationKHR = ChromaLocation;
4493 
to_string(ChromaLocation value)4494   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
4495   {
4496     switch ( value )
4497     {
4498       case ChromaLocation::eCositedEven : return "CositedEven";
4499       case ChromaLocation::eMidpoint : return "Midpoint";
4500       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4501     }
4502   }
4503 
4504   enum class CoarseSampleOrderTypeNV
4505   {
4506       eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV
4507     , eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV
4508     , ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV
4509     , eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
4510   };
4511 
to_string(CoarseSampleOrderTypeNV value)4512   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
4513   {
4514     switch ( value )
4515     {
4516       case CoarseSampleOrderTypeNV::eDefault : return "Default";
4517       case CoarseSampleOrderTypeNV::eCustom : return "Custom";
4518       case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor";
4519       case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor";
4520       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4521     }
4522   }
4523 
4524   enum class ColorComponentFlagBits : VkColorComponentFlags
4525   {
4526       eR = VK_COLOR_COMPONENT_R_BIT
4527     , eG = VK_COLOR_COMPONENT_G_BIT
4528     , eB = VK_COLOR_COMPONENT_B_BIT
4529     , eA = VK_COLOR_COMPONENT_A_BIT
4530   };
4531 
to_string(ColorComponentFlagBits value)4532   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
4533   {
4534     switch ( value )
4535     {
4536       case ColorComponentFlagBits::eR : return "R";
4537       case ColorComponentFlagBits::eG : return "G";
4538       case ColorComponentFlagBits::eB : return "B";
4539       case ColorComponentFlagBits::eA : return "A";
4540       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4541     }
4542   }
4543 
4544   enum class ColorSpaceKHR
4545   {
4546       eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
4547     , eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
4548     , eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
4549     , eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
4550     , eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT
4551     , eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT
4552     , eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT
4553     , eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT
4554     , eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT
4555     , eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT
4556     , eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT
4557     , eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT
4558     , eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
4559     , ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT
4560     , eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
4561     , eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD
4562     , eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR
4563     , eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
4564   };
4565 
to_string(ColorSpaceKHR value)4566   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
4567   {
4568     switch ( value )
4569     {
4570       case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear";
4571       case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT";
4572       case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT";
4573       case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT";
4574       case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT";
4575       case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT";
4576       case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT";
4577       case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT";
4578       case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT";
4579       case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT";
4580       case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT";
4581       case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT";
4582       case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT";
4583       case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT";
4584       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT";
4585       case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD";
4586       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4587     }
4588   }
4589 
4590   enum class CommandBufferLevel
4591   {
4592       ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY
4593     , eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
4594   };
4595 
to_string(CommandBufferLevel value)4596   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
4597   {
4598     switch ( value )
4599     {
4600       case CommandBufferLevel::ePrimary : return "Primary";
4601       case CommandBufferLevel::eSecondary : return "Secondary";
4602       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4603     }
4604   }
4605 
4606   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
4607   {
4608       eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
4609   };
4610 
to_string(CommandBufferResetFlagBits value)4611   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
4612   {
4613     switch ( value )
4614     {
4615       case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources";
4616       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4617     }
4618   }
4619 
4620   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
4621   {
4622       eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
4623     , eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
4624     , eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
4625   };
4626 
to_string(CommandBufferUsageFlagBits value)4627   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
4628   {
4629     switch ( value )
4630     {
4631       case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit";
4632       case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue";
4633       case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse";
4634       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4635     }
4636   }
4637 
4638   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
4639   {
4640       eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT
4641     , eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
4642     , eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
4643   };
4644 
to_string(CommandPoolCreateFlagBits value)4645   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
4646   {
4647     switch ( value )
4648     {
4649       case CommandPoolCreateFlagBits::eTransient : return "Transient";
4650       case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer";
4651       case CommandPoolCreateFlagBits::eProtected : return "Protected";
4652       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4653     }
4654   }
4655 
4656   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
4657   {
4658       eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
4659   };
4660 
to_string(CommandPoolResetFlagBits value)4661   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
4662   {
4663     switch ( value )
4664     {
4665       case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources";
4666       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4667     }
4668   }
4669 
4670   enum class CompareOp
4671   {
4672       eNever = VK_COMPARE_OP_NEVER
4673     , eLess = VK_COMPARE_OP_LESS
4674     , eEqual = VK_COMPARE_OP_EQUAL
4675     , eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL
4676     , eGreater = VK_COMPARE_OP_GREATER
4677     , eNotEqual = VK_COMPARE_OP_NOT_EQUAL
4678     , eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL
4679     , eAlways = VK_COMPARE_OP_ALWAYS
4680   };
4681 
to_string(CompareOp value)4682   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
4683   {
4684     switch ( value )
4685     {
4686       case CompareOp::eNever : return "Never";
4687       case CompareOp::eLess : return "Less";
4688       case CompareOp::eEqual : return "Equal";
4689       case CompareOp::eLessOrEqual : return "LessOrEqual";
4690       case CompareOp::eGreater : return "Greater";
4691       case CompareOp::eNotEqual : return "NotEqual";
4692       case CompareOp::eGreaterOrEqual : return "GreaterOrEqual";
4693       case CompareOp::eAlways : return "Always";
4694       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4695     }
4696   }
4697 
4698   enum class ComponentSwizzle
4699   {
4700       eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY
4701     , eZero = VK_COMPONENT_SWIZZLE_ZERO
4702     , eOne = VK_COMPONENT_SWIZZLE_ONE
4703     , eR = VK_COMPONENT_SWIZZLE_R
4704     , eG = VK_COMPONENT_SWIZZLE_G
4705     , eB = VK_COMPONENT_SWIZZLE_B
4706     , eA = VK_COMPONENT_SWIZZLE_A
4707   };
4708 
to_string(ComponentSwizzle value)4709   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
4710   {
4711     switch ( value )
4712     {
4713       case ComponentSwizzle::eIdentity : return "Identity";
4714       case ComponentSwizzle::eZero : return "Zero";
4715       case ComponentSwizzle::eOne : return "One";
4716       case ComponentSwizzle::eR : return "R";
4717       case ComponentSwizzle::eG : return "G";
4718       case ComponentSwizzle::eB : return "B";
4719       case ComponentSwizzle::eA : return "A";
4720       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4721     }
4722   }
4723 
4724   enum class ComponentTypeNV
4725   {
4726       eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV
4727     , eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV
4728     , eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV
4729     , eSint8 = VK_COMPONENT_TYPE_SINT8_NV
4730     , eSint16 = VK_COMPONENT_TYPE_SINT16_NV
4731     , eSint32 = VK_COMPONENT_TYPE_SINT32_NV
4732     , eSint64 = VK_COMPONENT_TYPE_SINT64_NV
4733     , eUint8 = VK_COMPONENT_TYPE_UINT8_NV
4734     , eUint16 = VK_COMPONENT_TYPE_UINT16_NV
4735     , eUint32 = VK_COMPONENT_TYPE_UINT32_NV
4736     , eUint64 = VK_COMPONENT_TYPE_UINT64_NV
4737   };
4738 
to_string(ComponentTypeNV value)4739   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
4740   {
4741     switch ( value )
4742     {
4743       case ComponentTypeNV::eFloat16 : return "Float16";
4744       case ComponentTypeNV::eFloat32 : return "Float32";
4745       case ComponentTypeNV::eFloat64 : return "Float64";
4746       case ComponentTypeNV::eSint8 : return "Sint8";
4747       case ComponentTypeNV::eSint16 : return "Sint16";
4748       case ComponentTypeNV::eSint32 : return "Sint32";
4749       case ComponentTypeNV::eSint64 : return "Sint64";
4750       case ComponentTypeNV::eUint8 : return "Uint8";
4751       case ComponentTypeNV::eUint16 : return "Uint16";
4752       case ComponentTypeNV::eUint32 : return "Uint32";
4753       case ComponentTypeNV::eUint64 : return "Uint64";
4754       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4755     }
4756   }
4757 
4758   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
4759   {
4760       eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
4761     , ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
4762     , ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR
4763     , eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
4764   };
4765 
to_string(CompositeAlphaFlagBitsKHR value)4766   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
4767   {
4768     switch ( value )
4769     {
4770       case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque";
4771       case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied";
4772       case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied";
4773       case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit";
4774       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4775     }
4776   }
4777 
4778   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
4779   {
4780       eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
4781   };
4782 
to_string(ConditionalRenderingFlagBitsEXT value)4783   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
4784   {
4785     switch ( value )
4786     {
4787       case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted";
4788       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4789     }
4790   }
4791 
4792   enum class ConservativeRasterizationModeEXT
4793   {
4794       eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
4795     , eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT
4796     , eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
4797   };
4798 
to_string(ConservativeRasterizationModeEXT value)4799   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
4800   {
4801     switch ( value )
4802     {
4803       case ConservativeRasterizationModeEXT::eDisabled : return "Disabled";
4804       case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate";
4805       case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate";
4806       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4807     }
4808   }
4809 
4810   enum class CopyAccelerationStructureModeKHR
4811   {
4812       eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
4813     , eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
4814     , eSerialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
4815     , eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
4816   };
4817   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
4818 
to_string(CopyAccelerationStructureModeKHR value)4819   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value )
4820   {
4821     switch ( value )
4822     {
4823       case CopyAccelerationStructureModeKHR::eClone : return "Clone";
4824       case CopyAccelerationStructureModeKHR::eCompact : return "Compact";
4825       case CopyAccelerationStructureModeKHR::eSerialize : return "Serialize";
4826       case CopyAccelerationStructureModeKHR::eDeserialize : return "Deserialize";
4827       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4828     }
4829   }
4830 
4831   enum class CoverageModulationModeNV
4832   {
4833       eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV
4834     , eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV
4835     , eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV
4836     , eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV
4837   };
4838 
to_string(CoverageModulationModeNV value)4839   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
4840   {
4841     switch ( value )
4842     {
4843       case CoverageModulationModeNV::eNone : return "None";
4844       case CoverageModulationModeNV::eRgb : return "Rgb";
4845       case CoverageModulationModeNV::eAlpha : return "Alpha";
4846       case CoverageModulationModeNV::eRgba : return "Rgba";
4847       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4848     }
4849   }
4850 
4851   enum class CoverageReductionModeNV
4852   {
4853       eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV
4854     , eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
4855   };
4856 
to_string(CoverageReductionModeNV value)4857   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
4858   {
4859     switch ( value )
4860     {
4861       case CoverageReductionModeNV::eMerge : return "Merge";
4862       case CoverageReductionModeNV::eTruncate : return "Truncate";
4863       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4864     }
4865   }
4866 
4867   enum class CullModeFlagBits : VkCullModeFlags
4868   {
4869       eNone = VK_CULL_MODE_NONE
4870     , eFront = VK_CULL_MODE_FRONT_BIT
4871     , eBack = VK_CULL_MODE_BACK_BIT
4872     , eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
4873   };
4874 
to_string(CullModeFlagBits value)4875   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
4876   {
4877     switch ( value )
4878     {
4879       case CullModeFlagBits::eNone : return "None";
4880       case CullModeFlagBits::eFront : return "Front";
4881       case CullModeFlagBits::eBack : return "Back";
4882       case CullModeFlagBits::eFrontAndBack : return "FrontAndBack";
4883       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4884     }
4885   }
4886 
4887   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
4888   {
4889       eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT
4890     , eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT
4891     , ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT
4892     , eError = VK_DEBUG_REPORT_ERROR_BIT_EXT
4893     , eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT
4894   };
4895 
to_string(DebugReportFlagBitsEXT value)4896   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
4897   {
4898     switch ( value )
4899     {
4900       case DebugReportFlagBitsEXT::eInformation : return "Information";
4901       case DebugReportFlagBitsEXT::eWarning : return "Warning";
4902       case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning";
4903       case DebugReportFlagBitsEXT::eError : return "Error";
4904       case DebugReportFlagBitsEXT::eDebug : return "Debug";
4905       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4906     }
4907   }
4908 
4909   enum class DebugReportObjectTypeEXT
4910   {
4911       eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
4912     , eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT
4913     , ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT
4914     , eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT
4915     , eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT
4916     , eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT
4917     , eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT
4918     , eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT
4919     , eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT
4920     , eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT
4921     , eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT
4922     , eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT
4923     , eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT
4924     , eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT
4925     , eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT
4926     , eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT
4927     , ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT
4928     , ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT
4929     , eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT
4930     , ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT
4931     , eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT
4932     , eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT
4933     , eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT
4934     , eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT
4935     , eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT
4936     , eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT
4937     , eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT
4938     , eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT
4939     , eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT
4940     , eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT
4941     , eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT
4942     , eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT
4943     , eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT
4944     , eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT
4945     , eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT
4946     , eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT
4947     , eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT
4948     , eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
4949     , eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT
4950     , eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
4951   };
4952 
to_string(DebugReportObjectTypeEXT value)4953   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
4954   {
4955     switch ( value )
4956     {
4957       case DebugReportObjectTypeEXT::eUnknown : return "Unknown";
4958       case DebugReportObjectTypeEXT::eInstance : return "Instance";
4959       case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice";
4960       case DebugReportObjectTypeEXT::eDevice : return "Device";
4961       case DebugReportObjectTypeEXT::eQueue : return "Queue";
4962       case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore";
4963       case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer";
4964       case DebugReportObjectTypeEXT::eFence : return "Fence";
4965       case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory";
4966       case DebugReportObjectTypeEXT::eBuffer : return "Buffer";
4967       case DebugReportObjectTypeEXT::eImage : return "Image";
4968       case DebugReportObjectTypeEXT::eEvent : return "Event";
4969       case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool";
4970       case DebugReportObjectTypeEXT::eBufferView : return "BufferView";
4971       case DebugReportObjectTypeEXT::eImageView : return "ImageView";
4972       case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule";
4973       case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache";
4974       case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout";
4975       case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass";
4976       case DebugReportObjectTypeEXT::ePipeline : return "Pipeline";
4977       case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout";
4978       case DebugReportObjectTypeEXT::eSampler : return "Sampler";
4979       case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool";
4980       case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet";
4981       case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer";
4982       case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool";
4983       case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR";
4984       case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR";
4985       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
4986       case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR";
4987       case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR";
4988       case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT";
4989       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
4990       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
4991       case DebugReportObjectTypeEXT::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4992       case DebugReportObjectTypeEXT::eAccelerationStructureNV : return "AccelerationStructureNV";
4993       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4994     }
4995   }
4996 
4997   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
4998   {
4999       eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT
5000     , eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT
5001     , eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT
5002     , eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
5003   };
5004 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)5005   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
5006   {
5007     switch ( value )
5008     {
5009       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose";
5010       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info";
5011       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning";
5012       case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error";
5013       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5014     }
5015   }
5016 
5017   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
5018   {
5019       eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT
5020     , eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT
5021     , ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
5022   };
5023 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)5024   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
5025   {
5026     switch ( value )
5027     {
5028       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General";
5029       case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation";
5030       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance";
5031       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5032     }
5033   }
5034 
5035   enum class DependencyFlagBits : VkDependencyFlags
5036   {
5037       eByRegion = VK_DEPENDENCY_BY_REGION_BIT
5038     , eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT
5039     , eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT
5040     , eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR
5041     , eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
5042   };
5043 
to_string(DependencyFlagBits value)5044   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
5045   {
5046     switch ( value )
5047     {
5048       case DependencyFlagBits::eByRegion : return "ByRegion";
5049       case DependencyFlagBits::eDeviceGroup : return "DeviceGroup";
5050       case DependencyFlagBits::eViewLocal : return "ViewLocal";
5051       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5052     }
5053   }
5054 
5055   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
5056   {
5057       eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
5058     , eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT
5059     , ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
5060     , eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
5061   };
5062   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
5063 
to_string(DescriptorBindingFlagBits value)5064   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value )
5065   {
5066     switch ( value )
5067     {
5068       case DescriptorBindingFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
5069       case DescriptorBindingFlagBits::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending";
5070       case DescriptorBindingFlagBits::ePartiallyBound : return "PartiallyBound";
5071       case DescriptorBindingFlagBits::eVariableDescriptorCount : return "VariableDescriptorCount";
5072       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5073     }
5074   }
5075 
5076   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
5077   {
5078       eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
5079     , eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT
5080     , eHostOnlyVALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE
5081     , eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
5082   };
5083 
to_string(DescriptorPoolCreateFlagBits value)5084   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
5085   {
5086     switch ( value )
5087     {
5088       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet";
5089       case DescriptorPoolCreateFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
5090       case DescriptorPoolCreateFlagBits::eHostOnlyVALVE : return "HostOnlyVALVE";
5091       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5092     }
5093   }
5094 
5095   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
5096   {
5097       eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
5098     , ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
5099     , eHostOnlyPoolVALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE
5100     , eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
5101   };
5102 
to_string(DescriptorSetLayoutCreateFlagBits value)5103   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
5104   {
5105     switch ( value )
5106     {
5107       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool : return "UpdateAfterBindPool";
5108       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR";
5109       case DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE : return "HostOnlyPoolVALVE";
5110       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5111     }
5112   }
5113 
5114   enum class DescriptorType
5115   {
5116       eSampler = VK_DESCRIPTOR_TYPE_SAMPLER
5117     , eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
5118     , eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
5119     , eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
5120     , eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
5121     , eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
5122     , eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
5123     , eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
5124     , eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
5125     , eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
5126     , eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
5127     , eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
5128     , eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
5129     , eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
5130     , eMutableVALVE = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
5131   };
5132 
to_string(DescriptorType value)5133   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
5134   {
5135     switch ( value )
5136     {
5137       case DescriptorType::eSampler : return "Sampler";
5138       case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler";
5139       case DescriptorType::eSampledImage : return "SampledImage";
5140       case DescriptorType::eStorageImage : return "StorageImage";
5141       case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer";
5142       case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer";
5143       case DescriptorType::eUniformBuffer : return "UniformBuffer";
5144       case DescriptorType::eStorageBuffer : return "StorageBuffer";
5145       case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic";
5146       case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic";
5147       case DescriptorType::eInputAttachment : return "InputAttachment";
5148       case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT";
5149       case DescriptorType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
5150       case DescriptorType::eAccelerationStructureNV : return "AccelerationStructureNV";
5151       case DescriptorType::eMutableVALVE : return "MutableVALVE";
5152       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5153     }
5154   }
5155 
5156   enum class DescriptorUpdateTemplateType
5157   {
5158       eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
5159     , ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
5160   };
5161   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
5162 
to_string(DescriptorUpdateTemplateType value)5163   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
5164   {
5165     switch ( value )
5166     {
5167       case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet";
5168       case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR";
5169       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5170     }
5171   }
5172 
5173   enum class DeviceCreateFlagBits
5174   {
5175   };
5176 
to_string(DeviceCreateFlagBits)5177   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
5178   {
5179     return "(void)";
5180   }
5181 
5182   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
5183   {
5184       eEnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV
5185     , eEnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV
5186     , eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV
5187   };
5188 
to_string(DeviceDiagnosticsConfigFlagBitsNV value)5189   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value )
5190   {
5191     switch ( value )
5192     {
5193       case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo : return "EnableShaderDebugInfo";
5194       case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking : return "EnableResourceTracking";
5195       case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints : return "EnableAutomaticCheckpoints";
5196       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5197     }
5198   }
5199 
5200   enum class DeviceEventTypeEXT
5201   {
5202       eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
5203   };
5204 
to_string(DeviceEventTypeEXT value)5205   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
5206   {
5207     switch ( value )
5208     {
5209       case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug";
5210       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5211     }
5212   }
5213 
5214   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
5215   {
5216       eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
5217     , eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR
5218     , eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR
5219     , eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
5220   };
5221 
to_string(DeviceGroupPresentModeFlagBitsKHR value)5222   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
5223   {
5224     switch ( value )
5225     {
5226       case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local";
5227       case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote";
5228       case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum";
5229       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice";
5230       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5231     }
5232   }
5233 
5234   enum class DeviceMemoryReportEventTypeEXT
5235   {
5236       eAllocate = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT
5237     , eFree = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT
5238     , eImport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT
5239     , eUnimport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT
5240     , eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
5241   };
5242 
to_string(DeviceMemoryReportEventTypeEXT value)5243   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value )
5244   {
5245     switch ( value )
5246     {
5247       case DeviceMemoryReportEventTypeEXT::eAllocate : return "Allocate";
5248       case DeviceMemoryReportEventTypeEXT::eFree : return "Free";
5249       case DeviceMemoryReportEventTypeEXT::eImport : return "Import";
5250       case DeviceMemoryReportEventTypeEXT::eUnimport : return "Unimport";
5251       case DeviceMemoryReportEventTypeEXT::eAllocationFailed : return "AllocationFailed";
5252       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5253     }
5254   }
5255 
5256   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
5257   {
5258       eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
5259   };
5260 
to_string(DeviceQueueCreateFlagBits value)5261   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
5262   {
5263     switch ( value )
5264     {
5265       case DeviceQueueCreateFlagBits::eProtected : return "Protected";
5266       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5267     }
5268   }
5269 
5270   enum class DiscardRectangleModeEXT
5271   {
5272       eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT
5273     , eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
5274   };
5275 
to_string(DiscardRectangleModeEXT value)5276   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
5277   {
5278     switch ( value )
5279     {
5280       case DiscardRectangleModeEXT::eInclusive : return "Inclusive";
5281       case DiscardRectangleModeEXT::eExclusive : return "Exclusive";
5282       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5283     }
5284   }
5285 
5286   enum class DisplayEventTypeEXT
5287   {
5288       eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
5289   };
5290 
to_string(DisplayEventTypeEXT value)5291   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
5292   {
5293     switch ( value )
5294     {
5295       case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut";
5296       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5297     }
5298   }
5299 
5300   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
5301   {
5302       eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR
5303     , eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR
5304     , ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR
5305     , ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
5306   };
5307 
to_string(DisplayPlaneAlphaFlagBitsKHR value)5308   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
5309   {
5310     switch ( value )
5311     {
5312       case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque";
5313       case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global";
5314       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel";
5315       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied";
5316       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5317     }
5318   }
5319 
5320   enum class DisplayPowerStateEXT
5321   {
5322       eOff = VK_DISPLAY_POWER_STATE_OFF_EXT
5323     , eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT
5324     , eOn = VK_DISPLAY_POWER_STATE_ON_EXT
5325   };
5326 
to_string(DisplayPowerStateEXT value)5327   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
5328   {
5329     switch ( value )
5330     {
5331       case DisplayPowerStateEXT::eOff : return "Off";
5332       case DisplayPowerStateEXT::eSuspend : return "Suspend";
5333       case DisplayPowerStateEXT::eOn : return "On";
5334       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5335     }
5336   }
5337 
5338   enum class DriverId
5339   {
5340       eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY
5341     , eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE
5342     , eMesaRadv = VK_DRIVER_ID_MESA_RADV
5343     , eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY
5344     , eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS
5345     , eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA
5346     , eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY
5347     , eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY
5348     , eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY
5349     , eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER
5350     , eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY
5351     , eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY
5352     , eMesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE
5353     , eMoltenvk = VK_DRIVER_ID_MOLTENVK
5354     , eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR
5355   };
5356   using DriverIdKHR = DriverId;
5357 
to_string(DriverId value)5358   VULKAN_HPP_INLINE std::string to_string( DriverId value )
5359   {
5360     switch ( value )
5361     {
5362       case DriverId::eAmdProprietary : return "AmdProprietary";
5363       case DriverId::eAmdOpenSource : return "AmdOpenSource";
5364       case DriverId::eMesaRadv : return "MesaRadv";
5365       case DriverId::eNvidiaProprietary : return "NvidiaProprietary";
5366       case DriverId::eIntelProprietaryWindows : return "IntelProprietaryWindows";
5367       case DriverId::eIntelOpenSourceMESA : return "IntelOpenSourceMESA";
5368       case DriverId::eImaginationProprietary : return "ImaginationProprietary";
5369       case DriverId::eQualcommProprietary : return "QualcommProprietary";
5370       case DriverId::eArmProprietary : return "ArmProprietary";
5371       case DriverId::eGoogleSwiftshader : return "GoogleSwiftshader";
5372       case DriverId::eGgpProprietary : return "GgpProprietary";
5373       case DriverId::eBroadcomProprietary : return "BroadcomProprietary";
5374       case DriverId::eMesaLlvmpipe : return "MesaLlvmpipe";
5375       case DriverId::eMoltenvk : return "Moltenvk";
5376       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5377     }
5378   }
5379 
5380   enum class DynamicState
5381   {
5382       eViewport = VK_DYNAMIC_STATE_VIEWPORT
5383     , eScissor = VK_DYNAMIC_STATE_SCISSOR
5384     , eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH
5385     , eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS
5386     , eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS
5387     , eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS
5388     , eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK
5389     , eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK
5390     , eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE
5391     , eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV
5392     , eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT
5393     , eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT
5394     , eRayTracingPipelineStackSizeKHR = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
5395     , eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV
5396     , eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV
5397     , eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
5398     , eFragmentShadingRateKHR = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
5399     , eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT
5400     , eCullModeEXT = VK_DYNAMIC_STATE_CULL_MODE_EXT
5401     , eFrontFaceEXT = VK_DYNAMIC_STATE_FRONT_FACE_EXT
5402     , ePrimitiveTopologyEXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT
5403     , eViewportWithCountEXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
5404     , eScissorWithCountEXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
5405     , eVertexInputBindingStrideEXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
5406     , eDepthTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT
5407     , eDepthWriteEnableEXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT
5408     , eDepthCompareOpEXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT
5409     , eDepthBoundsTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT
5410     , eStencilTestEnableEXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT
5411     , eStencilOpEXT = VK_DYNAMIC_STATE_STENCIL_OP_EXT
5412   };
5413 
to_string(DynamicState value)5414   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
5415   {
5416     switch ( value )
5417     {
5418       case DynamicState::eViewport : return "Viewport";
5419       case DynamicState::eScissor : return "Scissor";
5420       case DynamicState::eLineWidth : return "LineWidth";
5421       case DynamicState::eDepthBias : return "DepthBias";
5422       case DynamicState::eBlendConstants : return "BlendConstants";
5423       case DynamicState::eDepthBounds : return "DepthBounds";
5424       case DynamicState::eStencilCompareMask : return "StencilCompareMask";
5425       case DynamicState::eStencilWriteMask : return "StencilWriteMask";
5426       case DynamicState::eStencilReference : return "StencilReference";
5427       case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV";
5428       case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT";
5429       case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT";
5430       case DynamicState::eRayTracingPipelineStackSizeKHR : return "RayTracingPipelineStackSizeKHR";
5431       case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV";
5432       case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV";
5433       case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV";
5434       case DynamicState::eFragmentShadingRateKHR : return "FragmentShadingRateKHR";
5435       case DynamicState::eLineStippleEXT : return "LineStippleEXT";
5436       case DynamicState::eCullModeEXT : return "CullModeEXT";
5437       case DynamicState::eFrontFaceEXT : return "FrontFaceEXT";
5438       case DynamicState::ePrimitiveTopologyEXT : return "PrimitiveTopologyEXT";
5439       case DynamicState::eViewportWithCountEXT : return "ViewportWithCountEXT";
5440       case DynamicState::eScissorWithCountEXT : return "ScissorWithCountEXT";
5441       case DynamicState::eVertexInputBindingStrideEXT : return "VertexInputBindingStrideEXT";
5442       case DynamicState::eDepthTestEnableEXT : return "DepthTestEnableEXT";
5443       case DynamicState::eDepthWriteEnableEXT : return "DepthWriteEnableEXT";
5444       case DynamicState::eDepthCompareOpEXT : return "DepthCompareOpEXT";
5445       case DynamicState::eDepthBoundsTestEnableEXT : return "DepthBoundsTestEnableEXT";
5446       case DynamicState::eStencilTestEnableEXT : return "StencilTestEnableEXT";
5447       case DynamicState::eStencilOpEXT : return "StencilOpEXT";
5448       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5449     }
5450   }
5451 
5452   enum class EventCreateFlagBits : VkEventCreateFlags
5453   {
5454       eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR
5455   };
5456 
to_string(EventCreateFlagBits value)5457   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits value )
5458   {
5459     switch ( value )
5460     {
5461       case EventCreateFlagBits::eDeviceOnlyKHR : return "DeviceOnlyKHR";
5462       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5463     }
5464   }
5465 
5466   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
5467   {
5468       eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT
5469     , eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
5470   };
5471   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
5472 
to_string(ExternalFenceFeatureFlagBits value)5473   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
5474   {
5475     switch ( value )
5476     {
5477       case ExternalFenceFeatureFlagBits::eExportable : return "Exportable";
5478       case ExternalFenceFeatureFlagBits::eImportable : return "Importable";
5479       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5480     }
5481   }
5482 
5483   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
5484   {
5485       eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT
5486     , eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT
5487     , eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
5488     , eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
5489   };
5490   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
5491 
to_string(ExternalFenceHandleTypeFlagBits value)5492   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
5493   {
5494     switch ( value )
5495     {
5496       case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5497       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5498       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5499       case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd";
5500       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5501     }
5502   }
5503 
5504   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
5505   {
5506       eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT
5507     , eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT
5508     , eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
5509   };
5510   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
5511 
to_string(ExternalMemoryFeatureFlagBits value)5512   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
5513   {
5514     switch ( value )
5515     {
5516       case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly";
5517       case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable";
5518       case ExternalMemoryFeatureFlagBits::eImportable : return "Importable";
5519       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5520     }
5521   }
5522 
5523   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
5524   {
5525       eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV
5526     , eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV
5527     , eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
5528   };
5529 
to_string(ExternalMemoryFeatureFlagBitsNV value)5530   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
5531   {
5532     switch ( value )
5533     {
5534       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly";
5535       case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable";
5536       case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable";
5537       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5538     }
5539   }
5540 
5541   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
5542   {
5543     // clang-format off
5544       eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT
5545     , eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
5546     , eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
5547     , eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT
5548     , eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT
5549     , eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
5550     , eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
5551     , eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT
5552 #ifdef VK_USE_PLATFORM_ANDROID_KHR
5553     , eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
5554 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5555     , eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT
5556     , eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
5557     // clang-format on
5558   };
5559   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
5560 
to_string(ExternalMemoryHandleTypeFlagBits value)5561   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
5562   {
5563     switch ( value )
5564     {
5565       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5566       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5567       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5568       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture";
5569       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt";
5570       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap";
5571       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource";
5572       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT";
5573 #ifdef VK_USE_PLATFORM_ANDROID_KHR
5574       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID";
5575 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5576       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT";
5577       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT";
5578       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5579     }
5580   }
5581 
5582   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
5583   {
5584       eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV
5585     , eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV
5586     , eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV
5587     , eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
5588   };
5589 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)5590   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
5591   {
5592     switch ( value )
5593     {
5594       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32";
5595       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5596       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image";
5597       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt";
5598       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5599     }
5600   }
5601 
5602   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
5603   {
5604       eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT
5605     , eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
5606   };
5607   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
5608 
to_string(ExternalSemaphoreFeatureFlagBits value)5609   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
5610   {
5611     switch ( value )
5612     {
5613       case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable";
5614       case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable";
5615       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5616     }
5617   }
5618 
5619   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
5620   {
5621       eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT
5622     , eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
5623     , eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
5624     , eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
5625     , eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
5626     , eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
5627   };
5628   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
5629 
to_string(ExternalSemaphoreHandleTypeFlagBits value)5630   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
5631   {
5632     switch ( value )
5633     {
5634       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5635       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5636       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5637       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence";
5638       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd";
5639       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5640     }
5641   }
5642 
5643   enum class FenceCreateFlagBits : VkFenceCreateFlags
5644   {
5645       eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
5646   };
5647 
to_string(FenceCreateFlagBits value)5648   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
5649   {
5650     switch ( value )
5651     {
5652       case FenceCreateFlagBits::eSignaled : return "Signaled";
5653       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5654     }
5655   }
5656 
5657   enum class FenceImportFlagBits : VkFenceImportFlags
5658   {
5659       eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
5660   };
5661   using FenceImportFlagBitsKHR = FenceImportFlagBits;
5662 
to_string(FenceImportFlagBits value)5663   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
5664   {
5665     switch ( value )
5666     {
5667       case FenceImportFlagBits::eTemporary : return "Temporary";
5668       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5669     }
5670   }
5671 
5672   enum class Filter
5673   {
5674       eNearest = VK_FILTER_NEAREST
5675     , eLinear = VK_FILTER_LINEAR
5676     , eCubicIMG = VK_FILTER_CUBIC_IMG
5677     , eCubicEXT = VK_FILTER_CUBIC_EXT
5678   };
5679 
to_string(Filter value)5680   VULKAN_HPP_INLINE std::string to_string( Filter value )
5681   {
5682     switch ( value )
5683     {
5684       case Filter::eNearest : return "Nearest";
5685       case Filter::eLinear : return "Linear";
5686       case Filter::eCubicIMG : return "CubicIMG";
5687       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5688     }
5689   }
5690 
5691   enum class Format
5692   {
5693       eUndefined = VK_FORMAT_UNDEFINED
5694     , eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8
5695     , eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16
5696     , eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16
5697     , eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16
5698     , eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16
5699     , eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16
5700     , eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16
5701     , eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16
5702     , eR8Unorm = VK_FORMAT_R8_UNORM
5703     , eR8Snorm = VK_FORMAT_R8_SNORM
5704     , eR8Uscaled = VK_FORMAT_R8_USCALED
5705     , eR8Sscaled = VK_FORMAT_R8_SSCALED
5706     , eR8Uint = VK_FORMAT_R8_UINT
5707     , eR8Sint = VK_FORMAT_R8_SINT
5708     , eR8Srgb = VK_FORMAT_R8_SRGB
5709     , eR8G8Unorm = VK_FORMAT_R8G8_UNORM
5710     , eR8G8Snorm = VK_FORMAT_R8G8_SNORM
5711     , eR8G8Uscaled = VK_FORMAT_R8G8_USCALED
5712     , eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED
5713     , eR8G8Uint = VK_FORMAT_R8G8_UINT
5714     , eR8G8Sint = VK_FORMAT_R8G8_SINT
5715     , eR8G8Srgb = VK_FORMAT_R8G8_SRGB
5716     , eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM
5717     , eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM
5718     , eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED
5719     , eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED
5720     , eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT
5721     , eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT
5722     , eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB
5723     , eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM
5724     , eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM
5725     , eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED
5726     , eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED
5727     , eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT
5728     , eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT
5729     , eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB
5730     , eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM
5731     , eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM
5732     , eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED
5733     , eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED
5734     , eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT
5735     , eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT
5736     , eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB
5737     , eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM
5738     , eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM
5739     , eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED
5740     , eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED
5741     , eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT
5742     , eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT
5743     , eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB
5744     , eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32
5745     , eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32
5746     , eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32
5747     , eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32
5748     , eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32
5749     , eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32
5750     , eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32
5751     , eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32
5752     , eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32
5753     , eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32
5754     , eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32
5755     , eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32
5756     , eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32
5757     , eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32
5758     , eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32
5759     , eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32
5760     , eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32
5761     , eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32
5762     , eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32
5763     , eR16Unorm = VK_FORMAT_R16_UNORM
5764     , eR16Snorm = VK_FORMAT_R16_SNORM
5765     , eR16Uscaled = VK_FORMAT_R16_USCALED
5766     , eR16Sscaled = VK_FORMAT_R16_SSCALED
5767     , eR16Uint = VK_FORMAT_R16_UINT
5768     , eR16Sint = VK_FORMAT_R16_SINT
5769     , eR16Sfloat = VK_FORMAT_R16_SFLOAT
5770     , eR16G16Unorm = VK_FORMAT_R16G16_UNORM
5771     , eR16G16Snorm = VK_FORMAT_R16G16_SNORM
5772     , eR16G16Uscaled = VK_FORMAT_R16G16_USCALED
5773     , eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED
5774     , eR16G16Uint = VK_FORMAT_R16G16_UINT
5775     , eR16G16Sint = VK_FORMAT_R16G16_SINT
5776     , eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT
5777     , eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM
5778     , eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM
5779     , eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED
5780     , eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED
5781     , eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT
5782     , eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT
5783     , eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT
5784     , eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM
5785     , eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM
5786     , eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED
5787     , eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED
5788     , eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT
5789     , eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT
5790     , eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT
5791     , eR32Uint = VK_FORMAT_R32_UINT
5792     , eR32Sint = VK_FORMAT_R32_SINT
5793     , eR32Sfloat = VK_FORMAT_R32_SFLOAT
5794     , eR32G32Uint = VK_FORMAT_R32G32_UINT
5795     , eR32G32Sint = VK_FORMAT_R32G32_SINT
5796     , eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT
5797     , eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT
5798     , eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT
5799     , eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT
5800     , eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT
5801     , eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT
5802     , eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT
5803     , eR64Uint = VK_FORMAT_R64_UINT
5804     , eR64Sint = VK_FORMAT_R64_SINT
5805     , eR64Sfloat = VK_FORMAT_R64_SFLOAT
5806     , eR64G64Uint = VK_FORMAT_R64G64_UINT
5807     , eR64G64Sint = VK_FORMAT_R64G64_SINT
5808     , eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT
5809     , eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT
5810     , eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT
5811     , eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT
5812     , eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT
5813     , eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT
5814     , eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT
5815     , eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32
5816     , eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
5817     , eD16Unorm = VK_FORMAT_D16_UNORM
5818     , eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32
5819     , eD32Sfloat = VK_FORMAT_D32_SFLOAT
5820     , eS8Uint = VK_FORMAT_S8_UINT
5821     , eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT
5822     , eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT
5823     , eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT
5824     , eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK
5825     , eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK
5826     , eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK
5827     , eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK
5828     , eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK
5829     , eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK
5830     , eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK
5831     , eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK
5832     , eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK
5833     , eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK
5834     , eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK
5835     , eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK
5836     , eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK
5837     , eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK
5838     , eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK
5839     , eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK
5840     , eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
5841     , eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
5842     , eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
5843     , eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
5844     , eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
5845     , eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
5846     , eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK
5847     , eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK
5848     , eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK
5849     , eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK
5850     , eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK
5851     , eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK
5852     , eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK
5853     , eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK
5854     , eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK
5855     , eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK
5856     , eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK
5857     , eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK
5858     , eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK
5859     , eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK
5860     , eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK
5861     , eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK
5862     , eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK
5863     , eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK
5864     , eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK
5865     , eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK
5866     , eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK
5867     , eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK
5868     , eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK
5869     , eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK
5870     , eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK
5871     , eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK
5872     , eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK
5873     , eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK
5874     , eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK
5875     , eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK
5876     , eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK
5877     , eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK
5878     , eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM
5879     , eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM
5880     , eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM
5881     , eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
5882     , eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM
5883     , eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM
5884     , eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM
5885     , eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16
5886     , eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16
5887     , eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
5888     , eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
5889     , eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
5890     , eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
5891     , eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
5892     , eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
5893     , eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
5894     , eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
5895     , eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16
5896     , eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16
5897     , eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
5898     , eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
5899     , eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
5900     , eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16
5901     , eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16
5902     , eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16
5903     , eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16
5904     , eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
5905     , eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM
5906     , eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM
5907     , eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM
5908     , eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM
5909     , eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM
5910     , eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM
5911     , eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM
5912     , ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG
5913     , ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG
5914     , ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG
5915     , ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG
5916     , ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG
5917     , ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG
5918     , ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG
5919     , ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
5920     , eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT
5921     , eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT
5922     , eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT
5923     , eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT
5924     , eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT
5925     , eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT
5926     , eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT
5927     , eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT
5928     , eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT
5929     , eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT
5930     , eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT
5931     , eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT
5932     , eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT
5933     , eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT
5934     , eA4R4G4B4UnormPack16EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT
5935     , eA4B4G4R4UnormPack16EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT
5936     , eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR
5937     , eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR
5938     , eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR
5939     , eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR
5940     , eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR
5941     , eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR
5942     , eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR
5943     , eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR
5944     , eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR
5945     , eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR
5946     , eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR
5947     , eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR
5948     , eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR
5949     , eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR
5950     , eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR
5951     , eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR
5952     , eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR
5953     , eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR
5954     , eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR
5955     , eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR
5956     , eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR
5957     , eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR
5958     , eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR
5959     , eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR
5960     , eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR
5961     , eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR
5962     , eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR
5963     , eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR
5964     , eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR
5965     , eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR
5966     , eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR
5967     , eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR
5968     , eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR
5969     , eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR
5970   };
5971 
to_string(Format value)5972   VULKAN_HPP_INLINE std::string to_string( Format value )
5973   {
5974     switch ( value )
5975     {
5976       case Format::eUndefined : return "Undefined";
5977       case Format::eR4G4UnormPack8 : return "R4G4UnormPack8";
5978       case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16";
5979       case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16";
5980       case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16";
5981       case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16";
5982       case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16";
5983       case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16";
5984       case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16";
5985       case Format::eR8Unorm : return "R8Unorm";
5986       case Format::eR8Snorm : return "R8Snorm";
5987       case Format::eR8Uscaled : return "R8Uscaled";
5988       case Format::eR8Sscaled : return "R8Sscaled";
5989       case Format::eR8Uint : return "R8Uint";
5990       case Format::eR8Sint : return "R8Sint";
5991       case Format::eR8Srgb : return "R8Srgb";
5992       case Format::eR8G8Unorm : return "R8G8Unorm";
5993       case Format::eR8G8Snorm : return "R8G8Snorm";
5994       case Format::eR8G8Uscaled : return "R8G8Uscaled";
5995       case Format::eR8G8Sscaled : return "R8G8Sscaled";
5996       case Format::eR8G8Uint : return "R8G8Uint";
5997       case Format::eR8G8Sint : return "R8G8Sint";
5998       case Format::eR8G8Srgb : return "R8G8Srgb";
5999       case Format::eR8G8B8Unorm : return "R8G8B8Unorm";
6000       case Format::eR8G8B8Snorm : return "R8G8B8Snorm";
6001       case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled";
6002       case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled";
6003       case Format::eR8G8B8Uint : return "R8G8B8Uint";
6004       case Format::eR8G8B8Sint : return "R8G8B8Sint";
6005       case Format::eR8G8B8Srgb : return "R8G8B8Srgb";
6006       case Format::eB8G8R8Unorm : return "B8G8R8Unorm";
6007       case Format::eB8G8R8Snorm : return "B8G8R8Snorm";
6008       case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled";
6009       case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled";
6010       case Format::eB8G8R8Uint : return "B8G8R8Uint";
6011       case Format::eB8G8R8Sint : return "B8G8R8Sint";
6012       case Format::eB8G8R8Srgb : return "B8G8R8Srgb";
6013       case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm";
6014       case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm";
6015       case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled";
6016       case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled";
6017       case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint";
6018       case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint";
6019       case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb";
6020       case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm";
6021       case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm";
6022       case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled";
6023       case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled";
6024       case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint";
6025       case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint";
6026       case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb";
6027       case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32";
6028       case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32";
6029       case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32";
6030       case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32";
6031       case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32";
6032       case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32";
6033       case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32";
6034       case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32";
6035       case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32";
6036       case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32";
6037       case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32";
6038       case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32";
6039       case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32";
6040       case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32";
6041       case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32";
6042       case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32";
6043       case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32";
6044       case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32";
6045       case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32";
6046       case Format::eR16Unorm : return "R16Unorm";
6047       case Format::eR16Snorm : return "R16Snorm";
6048       case Format::eR16Uscaled : return "R16Uscaled";
6049       case Format::eR16Sscaled : return "R16Sscaled";
6050       case Format::eR16Uint : return "R16Uint";
6051       case Format::eR16Sint : return "R16Sint";
6052       case Format::eR16Sfloat : return "R16Sfloat";
6053       case Format::eR16G16Unorm : return "R16G16Unorm";
6054       case Format::eR16G16Snorm : return "R16G16Snorm";
6055       case Format::eR16G16Uscaled : return "R16G16Uscaled";
6056       case Format::eR16G16Sscaled : return "R16G16Sscaled";
6057       case Format::eR16G16Uint : return "R16G16Uint";
6058       case Format::eR16G16Sint : return "R16G16Sint";
6059       case Format::eR16G16Sfloat : return "R16G16Sfloat";
6060       case Format::eR16G16B16Unorm : return "R16G16B16Unorm";
6061       case Format::eR16G16B16Snorm : return "R16G16B16Snorm";
6062       case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled";
6063       case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled";
6064       case Format::eR16G16B16Uint : return "R16G16B16Uint";
6065       case Format::eR16G16B16Sint : return "R16G16B16Sint";
6066       case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat";
6067       case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm";
6068       case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm";
6069       case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled";
6070       case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled";
6071       case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint";
6072       case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint";
6073       case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat";
6074       case Format::eR32Uint : return "R32Uint";
6075       case Format::eR32Sint : return "R32Sint";
6076       case Format::eR32Sfloat : return "R32Sfloat";
6077       case Format::eR32G32Uint : return "R32G32Uint";
6078       case Format::eR32G32Sint : return "R32G32Sint";
6079       case Format::eR32G32Sfloat : return "R32G32Sfloat";
6080       case Format::eR32G32B32Uint : return "R32G32B32Uint";
6081       case Format::eR32G32B32Sint : return "R32G32B32Sint";
6082       case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat";
6083       case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint";
6084       case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint";
6085       case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat";
6086       case Format::eR64Uint : return "R64Uint";
6087       case Format::eR64Sint : return "R64Sint";
6088       case Format::eR64Sfloat : return "R64Sfloat";
6089       case Format::eR64G64Uint : return "R64G64Uint";
6090       case Format::eR64G64Sint : return "R64G64Sint";
6091       case Format::eR64G64Sfloat : return "R64G64Sfloat";
6092       case Format::eR64G64B64Uint : return "R64G64B64Uint";
6093       case Format::eR64G64B64Sint : return "R64G64B64Sint";
6094       case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat";
6095       case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint";
6096       case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint";
6097       case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat";
6098       case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32";
6099       case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32";
6100       case Format::eD16Unorm : return "D16Unorm";
6101       case Format::eX8D24UnormPack32 : return "X8D24UnormPack32";
6102       case Format::eD32Sfloat : return "D32Sfloat";
6103       case Format::eS8Uint : return "S8Uint";
6104       case Format::eD16UnormS8Uint : return "D16UnormS8Uint";
6105       case Format::eD24UnormS8Uint : return "D24UnormS8Uint";
6106       case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint";
6107       case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock";
6108       case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock";
6109       case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock";
6110       case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock";
6111       case Format::eBc2UnormBlock : return "Bc2UnormBlock";
6112       case Format::eBc2SrgbBlock : return "Bc2SrgbBlock";
6113       case Format::eBc3UnormBlock : return "Bc3UnormBlock";
6114       case Format::eBc3SrgbBlock : return "Bc3SrgbBlock";
6115       case Format::eBc4UnormBlock : return "Bc4UnormBlock";
6116       case Format::eBc4SnormBlock : return "Bc4SnormBlock";
6117       case Format::eBc5UnormBlock : return "Bc5UnormBlock";
6118       case Format::eBc5SnormBlock : return "Bc5SnormBlock";
6119       case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock";
6120       case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock";
6121       case Format::eBc7UnormBlock : return "Bc7UnormBlock";
6122       case Format::eBc7SrgbBlock : return "Bc7SrgbBlock";
6123       case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock";
6124       case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock";
6125       case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock";
6126       case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock";
6127       case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock";
6128       case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock";
6129       case Format::eEacR11UnormBlock : return "EacR11UnormBlock";
6130       case Format::eEacR11SnormBlock : return "EacR11SnormBlock";
6131       case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock";
6132       case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock";
6133       case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock";
6134       case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock";
6135       case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock";
6136       case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock";
6137       case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock";
6138       case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock";
6139       case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock";
6140       case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock";
6141       case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock";
6142       case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock";
6143       case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock";
6144       case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock";
6145       case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock";
6146       case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock";
6147       case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock";
6148       case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock";
6149       case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock";
6150       case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock";
6151       case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock";
6152       case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock";
6153       case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock";
6154       case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock";
6155       case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock";
6156       case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock";
6157       case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock";
6158       case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock";
6159       case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock";
6160       case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock";
6161       case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm";
6162       case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm";
6163       case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm";
6164       case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm";
6165       case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm";
6166       case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm";
6167       case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm";
6168       case Format::eR10X6UnormPack16 : return "R10X6UnormPack16";
6169       case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16";
6170       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16";
6171       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
6172       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
6173       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16";
6174       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16";
6175       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16";
6176       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16";
6177       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16";
6178       case Format::eR12X4UnormPack16 : return "R12X4UnormPack16";
6179       case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16";
6180       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16";
6181       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
6182       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
6183       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16";
6184       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16";
6185       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16";
6186       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16";
6187       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16";
6188       case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm";
6189       case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm";
6190       case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm";
6191       case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm";
6192       case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm";
6193       case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm";
6194       case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm";
6195       case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG";
6196       case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG";
6197       case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG";
6198       case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG";
6199       case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG";
6200       case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG";
6201       case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG";
6202       case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG";
6203       case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT";
6204       case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT";
6205       case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT";
6206       case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT";
6207       case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT";
6208       case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT";
6209       case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT";
6210       case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT";
6211       case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT";
6212       case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT";
6213       case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT";
6214       case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT";
6215       case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT";
6216       case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT";
6217       case Format::eA4R4G4B4UnormPack16EXT : return "A4R4G4B4UnormPack16EXT";
6218       case Format::eA4B4G4R4UnormPack16EXT : return "A4B4G4R4UnormPack16EXT";
6219       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6220     }
6221   }
6222 
6223   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
6224   {
6225       eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
6226     , eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
6227     , eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
6228     , eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
6229     , eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
6230     , eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
6231     , eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
6232     , eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
6233     , eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
6234     , eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
6235     , eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT
6236     , eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT
6237     , eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
6238     , eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
6239     , eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT
6240     , eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
6241     , eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
6242     , eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
6243     , eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
6244     , eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
6245     , eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT
6246     , eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
6247     , eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT
6248     , eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG
6249     , eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
6250     , eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT
6251     , eFragmentShadingRateAttachmentKHR = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
6252     , eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR
6253     , eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR
6254     , eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR
6255     , eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
6256     , eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT
6257     , eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR
6258     , eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR
6259     , eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR
6260     , eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR
6261     , eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
6262     , eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
6263   };
6264 
to_string(FormatFeatureFlagBits value)6265   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
6266   {
6267     switch ( value )
6268     {
6269       case FormatFeatureFlagBits::eSampledImage : return "SampledImage";
6270       case FormatFeatureFlagBits::eStorageImage : return "StorageImage";
6271       case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic";
6272       case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
6273       case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
6274       case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic";
6275       case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer";
6276       case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment";
6277       case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend";
6278       case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
6279       case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc";
6280       case FormatFeatureFlagBits::eBlitDst : return "BlitDst";
6281       case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear";
6282       case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc";
6283       case FormatFeatureFlagBits::eTransferDst : return "TransferDst";
6284       case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples";
6285       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter";
6286       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter";
6287       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit";
6288       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
6289       case FormatFeatureFlagBits::eDisjoint : return "Disjoint";
6290       case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples";
6291       case FormatFeatureFlagBits::eSampledImageFilterMinmax : return "SampledImageFilterMinmax";
6292       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG";
6293       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR : return "AccelerationStructureVertexBufferKHR";
6294       case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
6295       case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR : return "FragmentShadingRateAttachmentKHR";
6296       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6297     }
6298   }
6299 
6300   enum class FragmentShadingRateCombinerOpKHR
6301   {
6302       eKeep = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
6303     , eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
6304     , eMin = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR
6305     , eMax = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR
6306     , eMul = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
6307   };
6308 
to_string(FragmentShadingRateCombinerOpKHR value)6309   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value )
6310   {
6311     switch ( value )
6312     {
6313       case FragmentShadingRateCombinerOpKHR::eKeep : return "Keep";
6314       case FragmentShadingRateCombinerOpKHR::eReplace : return "Replace";
6315       case FragmentShadingRateCombinerOpKHR::eMin : return "Min";
6316       case FragmentShadingRateCombinerOpKHR::eMax : return "Max";
6317       case FragmentShadingRateCombinerOpKHR::eMul : return "Mul";
6318       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6319     }
6320   }
6321 
6322   enum class FragmentShadingRateNV
6323   {
6324       e1InvocationPerPixel = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV
6325     , e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV
6326     , e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV
6327     , e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV
6328     , e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV
6329     , e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV
6330     , e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV
6331     , e2InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV
6332     , e4InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV
6333     , e8InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV
6334     , e16InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV
6335     , eNoInvocations = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
6336   };
6337 
to_string(FragmentShadingRateNV value)6338   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value )
6339   {
6340     switch ( value )
6341     {
6342       case FragmentShadingRateNV::e1InvocationPerPixel : return "1InvocationPerPixel";
6343       case FragmentShadingRateNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
6344       case FragmentShadingRateNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
6345       case FragmentShadingRateNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
6346       case FragmentShadingRateNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
6347       case FragmentShadingRateNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
6348       case FragmentShadingRateNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
6349       case FragmentShadingRateNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
6350       case FragmentShadingRateNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
6351       case FragmentShadingRateNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
6352       case FragmentShadingRateNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
6353       case FragmentShadingRateNV::eNoInvocations : return "NoInvocations";
6354       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6355     }
6356   }
6357 
6358   enum class FragmentShadingRateTypeNV
6359   {
6360       eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV
6361     , eEnums = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
6362   };
6363 
to_string(FragmentShadingRateTypeNV value)6364   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateTypeNV value )
6365   {
6366     switch ( value )
6367     {
6368       case FragmentShadingRateTypeNV::eFragmentSize : return "FragmentSize";
6369       case FragmentShadingRateTypeNV::eEnums : return "Enums";
6370       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6371     }
6372   }
6373 
6374   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
6375   {
6376       eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT
6377     , eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
6378   };
6379 
to_string(FramebufferCreateFlagBits value)6380   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
6381   {
6382     switch ( value )
6383     {
6384       case FramebufferCreateFlagBits::eImageless : return "Imageless";
6385       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6386     }
6387   }
6388 
6389   enum class FrontFace
6390   {
6391       eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE
6392     , eClockwise = VK_FRONT_FACE_CLOCKWISE
6393   };
6394 
to_string(FrontFace value)6395   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
6396   {
6397     switch ( value )
6398     {
6399       case FrontFace::eCounterClockwise : return "CounterClockwise";
6400       case FrontFace::eClockwise : return "Clockwise";
6401       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6402     }
6403   }
6404 
6405 #ifdef VK_USE_PLATFORM_WIN32_KHR
6406   enum class FullScreenExclusiveEXT
6407   {
6408       eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT
6409     , eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT
6410     , eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT
6411     , eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
6412   };
6413 
to_string(FullScreenExclusiveEXT value)6414   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
6415   {
6416     switch ( value )
6417     {
6418       case FullScreenExclusiveEXT::eDefault : return "Default";
6419       case FullScreenExclusiveEXT::eAllowed : return "Allowed";
6420       case FullScreenExclusiveEXT::eDisallowed : return "Disallowed";
6421       case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled";
6422       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6423     }
6424   }
6425 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
6426 
6427   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
6428   {
6429       eOpaque = VK_GEOMETRY_OPAQUE_BIT_KHR
6430     , eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
6431   };
6432   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
6433 
to_string(GeometryFlagBitsKHR value)6434   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value )
6435   {
6436     switch ( value )
6437     {
6438       case GeometryFlagBitsKHR::eOpaque : return "Opaque";
6439       case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation";
6440       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6441     }
6442   }
6443 
6444   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
6445   {
6446       eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR
6447     , eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR
6448     , eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR
6449     , eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR
6450     , eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV
6451   };
6452   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
6453 
to_string(GeometryInstanceFlagBitsKHR value)6454   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value )
6455   {
6456     switch ( value )
6457     {
6458       case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable : return "TriangleFacingCullDisable";
6459       case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise";
6460       case GeometryInstanceFlagBitsKHR::eForceOpaque : return "ForceOpaque";
6461       case GeometryInstanceFlagBitsKHR::eForceNoOpaque : return "ForceNoOpaque";
6462       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6463     }
6464   }
6465 
6466   enum class GeometryTypeKHR
6467   {
6468       eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR
6469     , eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR
6470     , eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
6471   };
6472   using GeometryTypeNV = GeometryTypeKHR;
6473 
to_string(GeometryTypeKHR value)6474   VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value )
6475   {
6476     switch ( value )
6477     {
6478       case GeometryTypeKHR::eTriangles : return "Triangles";
6479       case GeometryTypeKHR::eAabbs : return "Aabbs";
6480       case GeometryTypeKHR::eInstances : return "Instances";
6481       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6482     }
6483   }
6484 
6485   enum class ImageAspectFlagBits : VkImageAspectFlags
6486   {
6487       eColor = VK_IMAGE_ASPECT_COLOR_BIT
6488     , eDepth = VK_IMAGE_ASPECT_DEPTH_BIT
6489     , eStencil = VK_IMAGE_ASPECT_STENCIL_BIT
6490     , eMetadata = VK_IMAGE_ASPECT_METADATA_BIT
6491     , ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT
6492     , ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT
6493     , ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT
6494     , eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT
6495     , eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT
6496     , eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT
6497     , eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT
6498     , ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR
6499     , ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR
6500     , ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
6501   };
6502 
to_string(ImageAspectFlagBits value)6503   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
6504   {
6505     switch ( value )
6506     {
6507       case ImageAspectFlagBits::eColor : return "Color";
6508       case ImageAspectFlagBits::eDepth : return "Depth";
6509       case ImageAspectFlagBits::eStencil : return "Stencil";
6510       case ImageAspectFlagBits::eMetadata : return "Metadata";
6511       case ImageAspectFlagBits::ePlane0 : return "Plane0";
6512       case ImageAspectFlagBits::ePlane1 : return "Plane1";
6513       case ImageAspectFlagBits::ePlane2 : return "Plane2";
6514       case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT";
6515       case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT";
6516       case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT";
6517       case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT";
6518       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6519     }
6520   }
6521 
6522   enum class ImageCreateFlagBits : VkImageCreateFlags
6523   {
6524       eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT
6525     , eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
6526     , eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
6527     , eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
6528     , eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
6529     , eAlias = VK_IMAGE_CREATE_ALIAS_BIT
6530     , eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
6531     , e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
6532     , eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
6533     , eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT
6534     , eProtected = VK_IMAGE_CREATE_PROTECTED_BIT
6535     , eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT
6536     , eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV
6537     , eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
6538     , eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
6539     , e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR
6540     , eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR
6541     , eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR
6542     , eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR
6543     , eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR
6544     , eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
6545   };
6546 
to_string(ImageCreateFlagBits value)6547   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
6548   {
6549     switch ( value )
6550     {
6551       case ImageCreateFlagBits::eSparseBinding : return "SparseBinding";
6552       case ImageCreateFlagBits::eSparseResidency : return "SparseResidency";
6553       case ImageCreateFlagBits::eSparseAliased : return "SparseAliased";
6554       case ImageCreateFlagBits::eMutableFormat : return "MutableFormat";
6555       case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible";
6556       case ImageCreateFlagBits::eAlias : return "Alias";
6557       case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
6558       case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible";
6559       case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible";
6560       case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage";
6561       case ImageCreateFlagBits::eProtected : return "Protected";
6562       case ImageCreateFlagBits::eDisjoint : return "Disjoint";
6563       case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV";
6564       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT";
6565       case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
6566       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6567     }
6568   }
6569 
6570   enum class ImageLayout
6571   {
6572       eUndefined = VK_IMAGE_LAYOUT_UNDEFINED
6573     , eGeneral = VK_IMAGE_LAYOUT_GENERAL
6574     , eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
6575     , eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
6576     , eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
6577     , eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
6578     , eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
6579     , eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
6580     , ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED
6581     , eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
6582     , eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
6583     , eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
6584     , eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
6585     , eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
6586     , eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
6587     , ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
6588     , eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
6589     , eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV
6590     , eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
6591     , eReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
6592     , eAttachmentOptimalKHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR
6593     , eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR
6594     , eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR
6595     , eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR
6596     , eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR
6597     , eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
6598     , eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR
6599     , eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
6600   };
6601 
to_string(ImageLayout value)6602   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
6603   {
6604     switch ( value )
6605     {
6606       case ImageLayout::eUndefined : return "Undefined";
6607       case ImageLayout::eGeneral : return "General";
6608       case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal";
6609       case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal";
6610       case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal";
6611       case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal";
6612       case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal";
6613       case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal";
6614       case ImageLayout::ePreinitialized : return "Preinitialized";
6615       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal";
6616       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal";
6617       case ImageLayout::eDepthAttachmentOptimal : return "DepthAttachmentOptimal";
6618       case ImageLayout::eDepthReadOnlyOptimal : return "DepthReadOnlyOptimal";
6619       case ImageLayout::eStencilAttachmentOptimal : return "StencilAttachmentOptimal";
6620       case ImageLayout::eStencilReadOnlyOptimal : return "StencilReadOnlyOptimal";
6621       case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR";
6622       case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR";
6623       case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV";
6624       case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT";
6625       case ImageLayout::eReadOnlyOptimalKHR : return "ReadOnlyOptimalKHR";
6626       case ImageLayout::eAttachmentOptimalKHR : return "AttachmentOptimalKHR";
6627       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6628     }
6629   }
6630 
6631   enum class ImageTiling
6632   {
6633       eOptimal = VK_IMAGE_TILING_OPTIMAL
6634     , eLinear = VK_IMAGE_TILING_LINEAR
6635     , eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
6636   };
6637 
to_string(ImageTiling value)6638   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
6639   {
6640     switch ( value )
6641     {
6642       case ImageTiling::eOptimal : return "Optimal";
6643       case ImageTiling::eLinear : return "Linear";
6644       case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT";
6645       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6646     }
6647   }
6648 
6649   enum class ImageType
6650   {
6651       e1D = VK_IMAGE_TYPE_1D
6652     , e2D = VK_IMAGE_TYPE_2D
6653     , e3D = VK_IMAGE_TYPE_3D
6654   };
6655 
to_string(ImageType value)6656   VULKAN_HPP_INLINE std::string to_string( ImageType value )
6657   {
6658     switch ( value )
6659     {
6660       case ImageType::e1D : return "1D";
6661       case ImageType::e2D : return "2D";
6662       case ImageType::e3D : return "3D";
6663       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6664     }
6665   }
6666 
6667   enum class ImageUsageFlagBits : VkImageUsageFlags
6668   {
6669       eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT
6670     , eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT
6671     , eSampled = VK_IMAGE_USAGE_SAMPLED_BIT
6672     , eStorage = VK_IMAGE_USAGE_STORAGE_BIT
6673     , eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
6674     , eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
6675     , eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
6676     , eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
6677     , eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
6678     , eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
6679     , eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
6680   };
6681 
to_string(ImageUsageFlagBits value)6682   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
6683   {
6684     switch ( value )
6685     {
6686       case ImageUsageFlagBits::eTransferSrc : return "TransferSrc";
6687       case ImageUsageFlagBits::eTransferDst : return "TransferDst";
6688       case ImageUsageFlagBits::eSampled : return "Sampled";
6689       case ImageUsageFlagBits::eStorage : return "Storage";
6690       case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment";
6691       case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
6692       case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment";
6693       case ImageUsageFlagBits::eInputAttachment : return "InputAttachment";
6694       case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
6695       case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
6696       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6697     }
6698   }
6699 
6700   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
6701   {
6702       eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
6703     , eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
6704   };
6705 
to_string(ImageViewCreateFlagBits value)6706   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
6707   {
6708     switch ( value )
6709     {
6710       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT";
6711       case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT : return "FragmentDensityMapDeferredEXT";
6712       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6713     }
6714   }
6715 
6716   enum class ImageViewType
6717   {
6718       e1D = VK_IMAGE_VIEW_TYPE_1D
6719     , e2D = VK_IMAGE_VIEW_TYPE_2D
6720     , e3D = VK_IMAGE_VIEW_TYPE_3D
6721     , eCube = VK_IMAGE_VIEW_TYPE_CUBE
6722     , e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY
6723     , e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY
6724     , eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
6725   };
6726 
to_string(ImageViewType value)6727   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
6728   {
6729     switch ( value )
6730     {
6731       case ImageViewType::e1D : return "1D";
6732       case ImageViewType::e2D : return "2D";
6733       case ImageViewType::e3D : return "3D";
6734       case ImageViewType::eCube : return "Cube";
6735       case ImageViewType::e1DArray : return "1DArray";
6736       case ImageViewType::e2DArray : return "2DArray";
6737       case ImageViewType::eCubeArray : return "CubeArray";
6738       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6739     }
6740   }
6741 
6742   enum class IndexType
6743   {
6744       eUint16 = VK_INDEX_TYPE_UINT16
6745     , eUint32 = VK_INDEX_TYPE_UINT32
6746     , eNoneKHR = VK_INDEX_TYPE_NONE_KHR
6747     , eUint8EXT = VK_INDEX_TYPE_UINT8_EXT
6748     , eNoneNV = VK_INDEX_TYPE_NONE_NV
6749   };
6750 
to_string(IndexType value)6751   VULKAN_HPP_INLINE std::string to_string( IndexType value )
6752   {
6753     switch ( value )
6754     {
6755       case IndexType::eUint16 : return "Uint16";
6756       case IndexType::eUint32 : return "Uint32";
6757       case IndexType::eNoneKHR : return "NoneKHR";
6758       case IndexType::eUint8EXT : return "Uint8EXT";
6759       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6760     }
6761   }
6762 
6763   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
6764   {
6765       eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV
6766     , eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV
6767     , eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
6768   };
6769 
to_string(IndirectCommandsLayoutUsageFlagBitsNV value)6770   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value )
6771   {
6772     switch ( value )
6773     {
6774       case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess : return "ExplicitPreprocess";
6775       case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences : return "IndexedSequences";
6776       case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences : return "UnorderedSequences";
6777       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6778     }
6779   }
6780 
6781   enum class IndirectCommandsTokenTypeNV
6782   {
6783       eShaderGroup = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV
6784     , eStateFlags = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV
6785     , eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV
6786     , eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV
6787     , ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV
6788     , eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV
6789     , eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV
6790     , eDrawTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
6791   };
6792 
to_string(IndirectCommandsTokenTypeNV value)6793   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value )
6794   {
6795     switch ( value )
6796     {
6797       case IndirectCommandsTokenTypeNV::eShaderGroup : return "ShaderGroup";
6798       case IndirectCommandsTokenTypeNV::eStateFlags : return "StateFlags";
6799       case IndirectCommandsTokenTypeNV::eIndexBuffer : return "IndexBuffer";
6800       case IndirectCommandsTokenTypeNV::eVertexBuffer : return "VertexBuffer";
6801       case IndirectCommandsTokenTypeNV::ePushConstant : return "PushConstant";
6802       case IndirectCommandsTokenTypeNV::eDrawIndexed : return "DrawIndexed";
6803       case IndirectCommandsTokenTypeNV::eDraw : return "Draw";
6804       case IndirectCommandsTokenTypeNV::eDrawTasks : return "DrawTasks";
6805       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6806     }
6807   }
6808 
6809   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
6810   {
6811       eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
6812   };
6813 
to_string(IndirectStateFlagBitsNV value)6814   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value )
6815   {
6816     switch ( value )
6817     {
6818       case IndirectStateFlagBitsNV::eFlagFrontface : return "FlagFrontface";
6819       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6820     }
6821   }
6822 
6823   enum class InstanceCreateFlagBits
6824   {
6825   };
6826 
to_string(InstanceCreateFlagBits)6827   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
6828   {
6829     return "(void)";
6830   }
6831 
6832   enum class InternalAllocationType
6833   {
6834       eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
6835   };
6836 
to_string(InternalAllocationType value)6837   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
6838   {
6839     switch ( value )
6840     {
6841       case InternalAllocationType::eExecutable : return "Executable";
6842       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6843     }
6844   }
6845 
6846   enum class LineRasterizationModeEXT
6847   {
6848       eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT
6849     , eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT
6850     , eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT
6851     , eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
6852   };
6853 
to_string(LineRasterizationModeEXT value)6854   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
6855   {
6856     switch ( value )
6857     {
6858       case LineRasterizationModeEXT::eDefault : return "Default";
6859       case LineRasterizationModeEXT::eRectangular : return "Rectangular";
6860       case LineRasterizationModeEXT::eBresenham : return "Bresenham";
6861       case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth";
6862       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6863     }
6864   }
6865 
6866   enum class LogicOp
6867   {
6868       eClear = VK_LOGIC_OP_CLEAR
6869     , eAnd = VK_LOGIC_OP_AND
6870     , eAndReverse = VK_LOGIC_OP_AND_REVERSE
6871     , eCopy = VK_LOGIC_OP_COPY
6872     , eAndInverted = VK_LOGIC_OP_AND_INVERTED
6873     , eNoOp = VK_LOGIC_OP_NO_OP
6874     , eXor = VK_LOGIC_OP_XOR
6875     , eOr = VK_LOGIC_OP_OR
6876     , eNor = VK_LOGIC_OP_NOR
6877     , eEquivalent = VK_LOGIC_OP_EQUIVALENT
6878     , eInvert = VK_LOGIC_OP_INVERT
6879     , eOrReverse = VK_LOGIC_OP_OR_REVERSE
6880     , eCopyInverted = VK_LOGIC_OP_COPY_INVERTED
6881     , eOrInverted = VK_LOGIC_OP_OR_INVERTED
6882     , eNand = VK_LOGIC_OP_NAND
6883     , eSet = VK_LOGIC_OP_SET
6884   };
6885 
to_string(LogicOp value)6886   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
6887   {
6888     switch ( value )
6889     {
6890       case LogicOp::eClear : return "Clear";
6891       case LogicOp::eAnd : return "And";
6892       case LogicOp::eAndReverse : return "AndReverse";
6893       case LogicOp::eCopy : return "Copy";
6894       case LogicOp::eAndInverted : return "AndInverted";
6895       case LogicOp::eNoOp : return "NoOp";
6896       case LogicOp::eXor : return "Xor";
6897       case LogicOp::eOr : return "Or";
6898       case LogicOp::eNor : return "Nor";
6899       case LogicOp::eEquivalent : return "Equivalent";
6900       case LogicOp::eInvert : return "Invert";
6901       case LogicOp::eOrReverse : return "OrReverse";
6902       case LogicOp::eCopyInverted : return "CopyInverted";
6903       case LogicOp::eOrInverted : return "OrInverted";
6904       case LogicOp::eNand : return "Nand";
6905       case LogicOp::eSet : return "Set";
6906       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6907     }
6908   }
6909 
6910   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
6911   {
6912       eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT
6913     , eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT
6914     , eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
6915   };
6916   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
6917 
to_string(MemoryAllocateFlagBits value)6918   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
6919   {
6920     switch ( value )
6921     {
6922       case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask";
6923       case MemoryAllocateFlagBits::eDeviceAddress : return "DeviceAddress";
6924       case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
6925       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6926     }
6927   }
6928 
6929   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
6930   {
6931       eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
6932     , eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT
6933     , eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
6934   };
6935 
to_string(MemoryHeapFlagBits value)6936   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
6937   {
6938     switch ( value )
6939     {
6940       case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal";
6941       case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance";
6942       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6943     }
6944   }
6945 
6946   enum class MemoryOverallocationBehaviorAMD
6947   {
6948       eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD
6949     , eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD
6950     , eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
6951   };
6952 
to_string(MemoryOverallocationBehaviorAMD value)6953   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
6954   {
6955     switch ( value )
6956     {
6957       case MemoryOverallocationBehaviorAMD::eDefault : return "Default";
6958       case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed";
6959       case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed";
6960       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6961     }
6962   }
6963 
6964   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
6965   {
6966       eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
6967     , eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
6968     , eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
6969     , eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT
6970     , eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
6971     , eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT
6972     , eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
6973     , eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
6974   };
6975 
to_string(MemoryPropertyFlagBits value)6976   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
6977   {
6978     switch ( value )
6979     {
6980       case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal";
6981       case MemoryPropertyFlagBits::eHostVisible : return "HostVisible";
6982       case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent";
6983       case MemoryPropertyFlagBits::eHostCached : return "HostCached";
6984       case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated";
6985       case MemoryPropertyFlagBits::eProtected : return "Protected";
6986       case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD";
6987       case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD";
6988       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6989     }
6990   }
6991 
6992   enum class ObjectType
6993   {
6994       eUnknown = VK_OBJECT_TYPE_UNKNOWN
6995     , eInstance = VK_OBJECT_TYPE_INSTANCE
6996     , ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE
6997     , eDevice = VK_OBJECT_TYPE_DEVICE
6998     , eQueue = VK_OBJECT_TYPE_QUEUE
6999     , eSemaphore = VK_OBJECT_TYPE_SEMAPHORE
7000     , eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER
7001     , eFence = VK_OBJECT_TYPE_FENCE
7002     , eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY
7003     , eBuffer = VK_OBJECT_TYPE_BUFFER
7004     , eImage = VK_OBJECT_TYPE_IMAGE
7005     , eEvent = VK_OBJECT_TYPE_EVENT
7006     , eQueryPool = VK_OBJECT_TYPE_QUERY_POOL
7007     , eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW
7008     , eImageView = VK_OBJECT_TYPE_IMAGE_VIEW
7009     , eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE
7010     , ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE
7011     , ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT
7012     , eRenderPass = VK_OBJECT_TYPE_RENDER_PASS
7013     , ePipeline = VK_OBJECT_TYPE_PIPELINE
7014     , eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT
7015     , eSampler = VK_OBJECT_TYPE_SAMPLER
7016     , eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL
7017     , eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET
7018     , eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER
7019     , eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL
7020     , eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION
7021     , eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE
7022     , eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR
7023     , eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR
7024     , eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR
7025     , eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR
7026     , eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT
7027     , eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT
7028     , eAccelerationStructureKHR = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR
7029     , eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT
7030     , eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV
7031     , ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL
7032     , eDeferredOperationKHR = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR
7033     , eIndirectCommandsLayoutNV = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV
7034     , ePrivateDataSlotEXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT
7035     , eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR
7036     , eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
7037   };
7038 
to_string(ObjectType value)7039   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
7040   {
7041     switch ( value )
7042     {
7043       case ObjectType::eUnknown : return "Unknown";
7044       case ObjectType::eInstance : return "Instance";
7045       case ObjectType::ePhysicalDevice : return "PhysicalDevice";
7046       case ObjectType::eDevice : return "Device";
7047       case ObjectType::eQueue : return "Queue";
7048       case ObjectType::eSemaphore : return "Semaphore";
7049       case ObjectType::eCommandBuffer : return "CommandBuffer";
7050       case ObjectType::eFence : return "Fence";
7051       case ObjectType::eDeviceMemory : return "DeviceMemory";
7052       case ObjectType::eBuffer : return "Buffer";
7053       case ObjectType::eImage : return "Image";
7054       case ObjectType::eEvent : return "Event";
7055       case ObjectType::eQueryPool : return "QueryPool";
7056       case ObjectType::eBufferView : return "BufferView";
7057       case ObjectType::eImageView : return "ImageView";
7058       case ObjectType::eShaderModule : return "ShaderModule";
7059       case ObjectType::ePipelineCache : return "PipelineCache";
7060       case ObjectType::ePipelineLayout : return "PipelineLayout";
7061       case ObjectType::eRenderPass : return "RenderPass";
7062       case ObjectType::ePipeline : return "Pipeline";
7063       case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout";
7064       case ObjectType::eSampler : return "Sampler";
7065       case ObjectType::eDescriptorPool : return "DescriptorPool";
7066       case ObjectType::eDescriptorSet : return "DescriptorSet";
7067       case ObjectType::eFramebuffer : return "Framebuffer";
7068       case ObjectType::eCommandPool : return "CommandPool";
7069       case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
7070       case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
7071       case ObjectType::eSurfaceKHR : return "SurfaceKHR";
7072       case ObjectType::eSwapchainKHR : return "SwapchainKHR";
7073       case ObjectType::eDisplayKHR : return "DisplayKHR";
7074       case ObjectType::eDisplayModeKHR : return "DisplayModeKHR";
7075       case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
7076       case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT";
7077       case ObjectType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
7078       case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT";
7079       case ObjectType::eAccelerationStructureNV : return "AccelerationStructureNV";
7080       case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL";
7081       case ObjectType::eDeferredOperationKHR : return "DeferredOperationKHR";
7082       case ObjectType::eIndirectCommandsLayoutNV : return "IndirectCommandsLayoutNV";
7083       case ObjectType::ePrivateDataSlotEXT : return "PrivateDataSlotEXT";
7084       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7085     }
7086   }
7087 
7088   template<ObjectType value>
7089   struct cpp_type
7090   {};
7091 
7092   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
7093   {
7094       eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT
7095     , eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT
7096     , eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT
7097     , eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
7098   };
7099   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
7100 
to_string(PeerMemoryFeatureFlagBits value)7101   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
7102   {
7103     switch ( value )
7104     {
7105       case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc";
7106       case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst";
7107       case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc";
7108       case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst";
7109       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7110     }
7111   }
7112 
7113   enum class PerformanceConfigurationTypeINTEL
7114   {
7115       eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
7116   };
7117 
to_string(PerformanceConfigurationTypeINTEL value)7118   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
7119   {
7120     switch ( value )
7121     {
7122       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated";
7123       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7124     }
7125   }
7126 
7127   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
7128   {
7129       ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR
7130     , eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR
7131   };
7132 
to_string(PerformanceCounterDescriptionFlagBitsKHR value)7133   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value )
7134   {
7135     switch ( value )
7136     {
7137       case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting : return "PerformanceImpacting";
7138       case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted : return "ConcurrentlyImpacted";
7139       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7140     }
7141   }
7142 
7143   enum class PerformanceCounterScopeKHR
7144   {
7145       eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR
7146     , eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR
7147     , eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR
7148     , eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR
7149     , eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR
7150     , eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR
7151   };
7152 
to_string(PerformanceCounterScopeKHR value)7153   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value )
7154   {
7155     switch ( value )
7156     {
7157       case PerformanceCounterScopeKHR::eCommandBuffer : return "CommandBuffer";
7158       case PerformanceCounterScopeKHR::eRenderPass : return "RenderPass";
7159       case PerformanceCounterScopeKHR::eCommand : return "Command";
7160       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7161     }
7162   }
7163 
7164   enum class PerformanceCounterStorageKHR
7165   {
7166       eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR
7167     , eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR
7168     , eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR
7169     , eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR
7170     , eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR
7171     , eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
7172   };
7173 
to_string(PerformanceCounterStorageKHR value)7174   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value )
7175   {
7176     switch ( value )
7177     {
7178       case PerformanceCounterStorageKHR::eInt32 : return "Int32";
7179       case PerformanceCounterStorageKHR::eInt64 : return "Int64";
7180       case PerformanceCounterStorageKHR::eUint32 : return "Uint32";
7181       case PerformanceCounterStorageKHR::eUint64 : return "Uint64";
7182       case PerformanceCounterStorageKHR::eFloat32 : return "Float32";
7183       case PerformanceCounterStorageKHR::eFloat64 : return "Float64";
7184       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7185     }
7186   }
7187 
7188   enum class PerformanceCounterUnitKHR
7189   {
7190       eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR
7191     , ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR
7192     , eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR
7193     , eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR
7194     , eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR
7195     , eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR
7196     , eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR
7197     , eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR
7198     , eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR
7199     , eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR
7200     , eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
7201   };
7202 
to_string(PerformanceCounterUnitKHR value)7203   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value )
7204   {
7205     switch ( value )
7206     {
7207       case PerformanceCounterUnitKHR::eGeneric : return "Generic";
7208       case PerformanceCounterUnitKHR::ePercentage : return "Percentage";
7209       case PerformanceCounterUnitKHR::eNanoseconds : return "Nanoseconds";
7210       case PerformanceCounterUnitKHR::eBytes : return "Bytes";
7211       case PerformanceCounterUnitKHR::eBytesPerSecond : return "BytesPerSecond";
7212       case PerformanceCounterUnitKHR::eKelvin : return "Kelvin";
7213       case PerformanceCounterUnitKHR::eWatts : return "Watts";
7214       case PerformanceCounterUnitKHR::eVolts : return "Volts";
7215       case PerformanceCounterUnitKHR::eAmps : return "Amps";
7216       case PerformanceCounterUnitKHR::eHertz : return "Hertz";
7217       case PerformanceCounterUnitKHR::eCycles : return "Cycles";
7218       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7219     }
7220   }
7221 
7222   enum class PerformanceOverrideTypeINTEL
7223   {
7224       eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL
7225     , eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
7226   };
7227 
to_string(PerformanceOverrideTypeINTEL value)7228   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
7229   {
7230     switch ( value )
7231     {
7232       case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware";
7233       case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches";
7234       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7235     }
7236   }
7237 
7238   enum class PerformanceParameterTypeINTEL
7239   {
7240       eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL
7241     , eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
7242   };
7243 
to_string(PerformanceParameterTypeINTEL value)7244   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
7245   {
7246     switch ( value )
7247     {
7248       case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported";
7249       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits";
7250       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7251     }
7252   }
7253 
7254   enum class PerformanceValueTypeINTEL
7255   {
7256       eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL
7257     , eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL
7258     , eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL
7259     , eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL
7260     , eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
7261   };
7262 
to_string(PerformanceValueTypeINTEL value)7263   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
7264   {
7265     switch ( value )
7266     {
7267       case PerformanceValueTypeINTEL::eUint32 : return "Uint32";
7268       case PerformanceValueTypeINTEL::eUint64 : return "Uint64";
7269       case PerformanceValueTypeINTEL::eFloat : return "Float";
7270       case PerformanceValueTypeINTEL::eBool : return "Bool";
7271       case PerformanceValueTypeINTEL::eString : return "String";
7272       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7273     }
7274   }
7275 
7276   enum class PhysicalDeviceType
7277   {
7278       eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER
7279     , eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
7280     , eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
7281     , eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
7282     , eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU
7283   };
7284 
to_string(PhysicalDeviceType value)7285   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
7286   {
7287     switch ( value )
7288     {
7289       case PhysicalDeviceType::eOther : return "Other";
7290       case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu";
7291       case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu";
7292       case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu";
7293       case PhysicalDeviceType::eCpu : return "Cpu";
7294       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7295     }
7296   }
7297 
7298   enum class PipelineBindPoint
7299   {
7300       eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS
7301     , eCompute = VK_PIPELINE_BIND_POINT_COMPUTE
7302     , eRayTracingKHR = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR
7303     , eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
7304   };
7305 
to_string(PipelineBindPoint value)7306   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
7307   {
7308     switch ( value )
7309     {
7310       case PipelineBindPoint::eGraphics : return "Graphics";
7311       case PipelineBindPoint::eCompute : return "Compute";
7312       case PipelineBindPoint::eRayTracingKHR : return "RayTracingKHR";
7313       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7314     }
7315   }
7316 
7317   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
7318   {
7319       eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
7320   };
7321 
to_string(PipelineCacheCreateFlagBits value)7322   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
7323   {
7324     switch ( value )
7325     {
7326       case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT : return "ExternallySynchronizedEXT";
7327       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7328     }
7329   }
7330 
7331   enum class PipelineCacheHeaderVersion
7332   {
7333       eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
7334   };
7335 
to_string(PipelineCacheHeaderVersion value)7336   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
7337   {
7338     switch ( value )
7339     {
7340       case PipelineCacheHeaderVersion::eOne : return "One";
7341       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7342     }
7343   }
7344 
7345   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
7346   {
7347   };
7348 
to_string(PipelineCompilerControlFlagBitsAMD)7349   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
7350   {
7351     return "(void)";
7352   }
7353 
7354   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
7355   {
7356       eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
7357     , eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
7358     , eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT
7359     , eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT
7360     , eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT
7361     , eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
7362     , eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
7363     , eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
7364     , eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
7365     , eRayTracingSkipTrianglesKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
7366     , eRayTracingSkipAabbsKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
7367     , eRayTracingShaderGroupHandleCaptureReplayKHR = VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
7368     , eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV
7369     , eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
7370     , eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
7371     , eIndirectBindableNV = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
7372     , eLibraryKHR = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
7373     , eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
7374     , eEarlyReturnOnFailureEXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
7375     , eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR
7376     , eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
7377   };
7378 
to_string(PipelineCreateFlagBits value)7379   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
7380   {
7381     switch ( value )
7382     {
7383       case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization";
7384       case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives";
7385       case PipelineCreateFlagBits::eDerivative : return "Derivative";
7386       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex";
7387       case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase";
7388       case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR : return "RayTracingNoNullAnyHitShadersKHR";
7389       case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR : return "RayTracingNoNullClosestHitShadersKHR";
7390       case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR : return "RayTracingNoNullMissShadersKHR";
7391       case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR : return "RayTracingNoNullIntersectionShadersKHR";
7392       case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR : return "RayTracingSkipTrianglesKHR";
7393       case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR : return "RayTracingSkipAabbsKHR";
7394       case PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR : return "RayTracingShaderGroupHandleCaptureReplayKHR";
7395       case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV";
7396       case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR";
7397       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR";
7398       case PipelineCreateFlagBits::eIndirectBindableNV : return "IndirectBindableNV";
7399       case PipelineCreateFlagBits::eLibraryKHR : return "LibraryKHR";
7400       case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT : return "FailOnPipelineCompileRequiredEXT";
7401       case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT : return "EarlyReturnOnFailureEXT";
7402       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7403     }
7404   }
7405 
7406   enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT
7407   {
7408       eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT
7409     , eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT
7410     , eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
7411   };
7412 
to_string(PipelineCreationFeedbackFlagBitsEXT value)7413   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
7414   {
7415     switch ( value )
7416     {
7417       case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid";
7418       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit";
7419       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration";
7420       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7421     }
7422   }
7423 
7424   enum class PipelineExecutableStatisticFormatKHR
7425   {
7426       eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR
7427     , eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR
7428     , eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR
7429     , eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
7430   };
7431 
to_string(PipelineExecutableStatisticFormatKHR value)7432   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
7433   {
7434     switch ( value )
7435     {
7436       case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32";
7437       case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64";
7438       case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64";
7439       case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64";
7440       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7441     }
7442   }
7443 
7444   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
7445   {
7446       eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
7447     , eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
7448   };
7449 
to_string(PipelineShaderStageCreateFlagBits value)7450   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
7451   {
7452     switch ( value )
7453     {
7454       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT";
7455       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT";
7456       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7457     }
7458   }
7459 
7460   enum class PipelineStageFlagBits : VkPipelineStageFlags
7461   {
7462       eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
7463     , eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
7464     , eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
7465     , eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
7466     , eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
7467     , eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
7468     , eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
7469     , eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
7470     , eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
7471     , eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
7472     , eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
7473     , eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
7474     , eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT
7475     , eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
7476     , eHost = VK_PIPELINE_STAGE_HOST_BIT
7477     , eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT
7478     , eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
7479     , eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
7480     , eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
7481     , eAccelerationStructureBuildKHR = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
7482     , eRayTracingShaderKHR = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
7483     , eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
7484     , eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV
7485     , eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV
7486     , eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
7487     , eCommandPreprocessNV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV
7488     , eNoneKHR = VK_PIPELINE_STAGE_NONE_KHR
7489     , eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV
7490     , eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
7491     , eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV
7492   };
7493 
to_string(PipelineStageFlagBits value)7494   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
7495   {
7496     switch ( value )
7497     {
7498       case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe";
7499       case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect";
7500       case PipelineStageFlagBits::eVertexInput : return "VertexInput";
7501       case PipelineStageFlagBits::eVertexShader : return "VertexShader";
7502       case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader";
7503       case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader";
7504       case PipelineStageFlagBits::eGeometryShader : return "GeometryShader";
7505       case PipelineStageFlagBits::eFragmentShader : return "FragmentShader";
7506       case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests";
7507       case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests";
7508       case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput";
7509       case PipelineStageFlagBits::eComputeShader : return "ComputeShader";
7510       case PipelineStageFlagBits::eTransfer : return "Transfer";
7511       case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe";
7512       case PipelineStageFlagBits::eHost : return "Host";
7513       case PipelineStageFlagBits::eAllGraphics : return "AllGraphics";
7514       case PipelineStageFlagBits::eAllCommands : return "AllCommands";
7515       case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT";
7516       case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
7517       case PipelineStageFlagBits::eAccelerationStructureBuildKHR : return "AccelerationStructureBuildKHR";
7518       case PipelineStageFlagBits::eRayTracingShaderKHR : return "RayTracingShaderKHR";
7519       case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
7520       case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV";
7521       case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV";
7522       case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT";
7523       case PipelineStageFlagBits::eCommandPreprocessNV : return "CommandPreprocessNV";
7524       case PipelineStageFlagBits::eNoneKHR : return "NoneKHR";
7525       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7526     }
7527   }
7528 
7529   enum class PipelineStageFlagBits2KHR : VkPipelineStageFlags2KHR
7530   {
7531       e2None = VK_PIPELINE_STAGE_2_NONE_KHR
7532     , e2TopOfPipe = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR
7533     , e2DrawIndirect = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR
7534     , e2VertexInput = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR
7535     , e2VertexShader = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR
7536     , e2TessellationControlShader = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR
7537     , e2TessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR
7538     , e2GeometryShader = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR
7539     , e2FragmentShader = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR
7540     , e2EarlyFragmentTests = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR
7541     , e2LateFragmentTests = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR
7542     , e2ColorAttachmentOutput = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
7543     , e2ComputeShader = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR
7544     , e2AllTransfer = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR
7545     , e2BottomOfPipe = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR
7546     , e2Host = VK_PIPELINE_STAGE_2_HOST_BIT_KHR
7547     , e2AllGraphics = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
7548     , e2AllCommands = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
7549     , e2Copy = VK_PIPELINE_STAGE_2_COPY_BIT_KHR
7550     , e2Resolve = VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR
7551     , e2Blit = VK_PIPELINE_STAGE_2_BLIT_BIT_KHR
7552     , e2Clear = VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR
7553     , e2IndexInput = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR
7554     , e2VertexAttributeInput = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR
7555     , e2PreRasterizationShaders = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR
7556     , e2TransformFeedbackExt = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
7557     , e2ConditionalRenderingExt = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
7558     , e2CommandPreprocessNv = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV
7559     , e2FragmentShadingRateAttachment = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
7560     , e2AccelerationStructureBuild = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
7561     , e2RayTracingShader = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
7562     , e2FragmentDensityProcessExt = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
7563     , e2TaskShaderNv = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV
7564     , e2MeshShaderNv = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV
7565     , e2AccelerationStructureBuildNv = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV
7566     , e2RayTracingShaderNv = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV
7567     , e2ShadingRateImageNv = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
7568     , e2Transfer = VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR
7569   };
7570 
to_string(PipelineStageFlagBits2KHR value)7571   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits2KHR value )
7572   {
7573     switch ( value )
7574     {
7575       case PipelineStageFlagBits2KHR::e2None : return "2None";
7576       case PipelineStageFlagBits2KHR::e2TopOfPipe : return "2TopOfPipe";
7577       case PipelineStageFlagBits2KHR::e2DrawIndirect : return "2DrawIndirect";
7578       case PipelineStageFlagBits2KHR::e2VertexInput : return "2VertexInput";
7579       case PipelineStageFlagBits2KHR::e2VertexShader : return "2VertexShader";
7580       case PipelineStageFlagBits2KHR::e2TessellationControlShader : return "2TessellationControlShader";
7581       case PipelineStageFlagBits2KHR::e2TessellationEvaluationShader : return "2TessellationEvaluationShader";
7582       case PipelineStageFlagBits2KHR::e2GeometryShader : return "2GeometryShader";
7583       case PipelineStageFlagBits2KHR::e2FragmentShader : return "2FragmentShader";
7584       case PipelineStageFlagBits2KHR::e2EarlyFragmentTests : return "2EarlyFragmentTests";
7585       case PipelineStageFlagBits2KHR::e2LateFragmentTests : return "2LateFragmentTests";
7586       case PipelineStageFlagBits2KHR::e2ColorAttachmentOutput : return "2ColorAttachmentOutput";
7587       case PipelineStageFlagBits2KHR::e2ComputeShader : return "2ComputeShader";
7588       case PipelineStageFlagBits2KHR::e2AllTransfer : return "2AllTransfer";
7589       case PipelineStageFlagBits2KHR::e2BottomOfPipe : return "2BottomOfPipe";
7590       case PipelineStageFlagBits2KHR::e2Host : return "2Host";
7591       case PipelineStageFlagBits2KHR::e2AllGraphics : return "2AllGraphics";
7592       case PipelineStageFlagBits2KHR::e2AllCommands : return "2AllCommands";
7593       case PipelineStageFlagBits2KHR::e2Copy : return "2Copy";
7594       case PipelineStageFlagBits2KHR::e2Resolve : return "2Resolve";
7595       case PipelineStageFlagBits2KHR::e2Blit : return "2Blit";
7596       case PipelineStageFlagBits2KHR::e2Clear : return "2Clear";
7597       case PipelineStageFlagBits2KHR::e2IndexInput : return "2IndexInput";
7598       case PipelineStageFlagBits2KHR::e2VertexAttributeInput : return "2VertexAttributeInput";
7599       case PipelineStageFlagBits2KHR::e2PreRasterizationShaders : return "2PreRasterizationShaders";
7600       case PipelineStageFlagBits2KHR::e2TransformFeedbackExt : return "2TransformFeedbackExt";
7601       case PipelineStageFlagBits2KHR::e2ConditionalRenderingExt : return "2ConditionalRenderingExt";
7602       case PipelineStageFlagBits2KHR::e2CommandPreprocessNv : return "2CommandPreprocessNv";
7603       case PipelineStageFlagBits2KHR::e2FragmentShadingRateAttachment : return "2FragmentShadingRateAttachment";
7604       case PipelineStageFlagBits2KHR::e2AccelerationStructureBuild : return "2AccelerationStructureBuild";
7605       case PipelineStageFlagBits2KHR::e2RayTracingShader : return "2RayTracingShader";
7606       case PipelineStageFlagBits2KHR::e2FragmentDensityProcessExt : return "2FragmentDensityProcessExt";
7607       case PipelineStageFlagBits2KHR::e2TaskShaderNv : return "2TaskShaderNv";
7608       case PipelineStageFlagBits2KHR::e2MeshShaderNv : return "2MeshShaderNv";
7609       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7610     }
7611   }
7612 
7613   enum class PointClippingBehavior
7614   {
7615       eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
7616     , eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
7617   };
7618   using PointClippingBehaviorKHR = PointClippingBehavior;
7619 
to_string(PointClippingBehavior value)7620   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
7621   {
7622     switch ( value )
7623     {
7624       case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes";
7625       case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly";
7626       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7627     }
7628   }
7629 
7630   enum class PolygonMode
7631   {
7632       eFill = VK_POLYGON_MODE_FILL
7633     , eLine = VK_POLYGON_MODE_LINE
7634     , ePoint = VK_POLYGON_MODE_POINT
7635     , eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
7636   };
7637 
to_string(PolygonMode value)7638   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
7639   {
7640     switch ( value )
7641     {
7642       case PolygonMode::eFill : return "Fill";
7643       case PolygonMode::eLine : return "Line";
7644       case PolygonMode::ePoint : return "Point";
7645       case PolygonMode::eFillRectangleNV : return "FillRectangleNV";
7646       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7647     }
7648   }
7649 
7650   enum class PresentModeKHR
7651   {
7652       eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR
7653     , eMailbox = VK_PRESENT_MODE_MAILBOX_KHR
7654     , eFifo = VK_PRESENT_MODE_FIFO_KHR
7655     , eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR
7656     , eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR
7657     , eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
7658   };
7659 
to_string(PresentModeKHR value)7660   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
7661   {
7662     switch ( value )
7663     {
7664       case PresentModeKHR::eImmediate : return "Immediate";
7665       case PresentModeKHR::eMailbox : return "Mailbox";
7666       case PresentModeKHR::eFifo : return "Fifo";
7667       case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed";
7668       case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh";
7669       case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh";
7670       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7671     }
7672   }
7673 
7674   enum class PrimitiveTopology
7675   {
7676       ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST
7677     , eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST
7678     , eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP
7679     , eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
7680     , eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
7681     , eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
7682     , eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
7683     , eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
7684     , eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
7685     , eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
7686     , ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
7687   };
7688 
to_string(PrimitiveTopology value)7689   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
7690   {
7691     switch ( value )
7692     {
7693       case PrimitiveTopology::ePointList : return "PointList";
7694       case PrimitiveTopology::eLineList : return "LineList";
7695       case PrimitiveTopology::eLineStrip : return "LineStrip";
7696       case PrimitiveTopology::eTriangleList : return "TriangleList";
7697       case PrimitiveTopology::eTriangleStrip : return "TriangleStrip";
7698       case PrimitiveTopology::eTriangleFan : return "TriangleFan";
7699       case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency";
7700       case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency";
7701       case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency";
7702       case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency";
7703       case PrimitiveTopology::ePatchList : return "PatchList";
7704       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7705     }
7706   }
7707 
7708   enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT
7709   {
7710   };
7711 
to_string(PrivateDataSlotCreateFlagBitsEXT)7712   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT )
7713   {
7714     return "(void)";
7715   }
7716 
7717   enum class QueryControlFlagBits : VkQueryControlFlags
7718   {
7719       ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
7720   };
7721 
to_string(QueryControlFlagBits value)7722   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
7723   {
7724     switch ( value )
7725     {
7726       case QueryControlFlagBits::ePrecise : return "Precise";
7727       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7728     }
7729   }
7730 
7731   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
7732   {
7733       eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
7734     , eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
7735     , eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
7736     , eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
7737     , eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
7738     , eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
7739     , eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
7740     , eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
7741     , eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
7742     , eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
7743     , eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
7744   };
7745 
to_string(QueryPipelineStatisticFlagBits value)7746   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
7747   {
7748     switch ( value )
7749     {
7750       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices";
7751       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives";
7752       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations";
7753       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations";
7754       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives";
7755       case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations";
7756       case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives";
7757       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations";
7758       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches";
7759       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations";
7760       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations";
7761       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7762     }
7763   }
7764 
7765   enum class QueryPoolCreateFlagBits
7766   {
7767   };
7768 
to_string(QueryPoolCreateFlagBits)7769   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
7770   {
7771     return "(void)";
7772   }
7773 
7774   enum class QueryPoolSamplingModeINTEL
7775   {
7776       eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
7777   };
7778 
to_string(QueryPoolSamplingModeINTEL value)7779   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
7780   {
7781     switch ( value )
7782     {
7783       case QueryPoolSamplingModeINTEL::eManual : return "Manual";
7784       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7785     }
7786   }
7787 
7788   enum class QueryResultFlagBits : VkQueryResultFlags
7789   {
7790       e64 = VK_QUERY_RESULT_64_BIT
7791     , eWait = VK_QUERY_RESULT_WAIT_BIT
7792     , eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
7793     , ePartial = VK_QUERY_RESULT_PARTIAL_BIT
7794   };
7795 
to_string(QueryResultFlagBits value)7796   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
7797   {
7798     switch ( value )
7799     {
7800       case QueryResultFlagBits::e64 : return "64";
7801       case QueryResultFlagBits::eWait : return "Wait";
7802       case QueryResultFlagBits::eWithAvailability : return "WithAvailability";
7803       case QueryResultFlagBits::ePartial : return "Partial";
7804       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7805     }
7806   }
7807 
7808   enum class QueryType
7809   {
7810       eOcclusion = VK_QUERY_TYPE_OCCLUSION
7811     , ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS
7812     , eTimestamp = VK_QUERY_TYPE_TIMESTAMP
7813     , eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT
7814     , ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR
7815     , eAccelerationStructureCompactedSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR
7816     , eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
7817     , eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
7818     , ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
7819   };
7820 
to_string(QueryType value)7821   VULKAN_HPP_INLINE std::string to_string( QueryType value )
7822   {
7823     switch ( value )
7824     {
7825       case QueryType::eOcclusion : return "Occlusion";
7826       case QueryType::ePipelineStatistics : return "PipelineStatistics";
7827       case QueryType::eTimestamp : return "Timestamp";
7828       case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT";
7829       case QueryType::ePerformanceQueryKHR : return "PerformanceQueryKHR";
7830       case QueryType::eAccelerationStructureCompactedSizeKHR : return "AccelerationStructureCompactedSizeKHR";
7831       case QueryType::eAccelerationStructureSerializationSizeKHR : return "AccelerationStructureSerializationSizeKHR";
7832       case QueryType::eAccelerationStructureCompactedSizeNV : return "AccelerationStructureCompactedSizeNV";
7833       case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL";
7834       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7835     }
7836   }
7837 
7838   enum class QueueFlagBits : VkQueueFlags
7839   {
7840       eGraphics = VK_QUEUE_GRAPHICS_BIT
7841     , eCompute = VK_QUEUE_COMPUTE_BIT
7842     , eTransfer = VK_QUEUE_TRANSFER_BIT
7843     , eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT
7844     , eProtected = VK_QUEUE_PROTECTED_BIT
7845   };
7846 
to_string(QueueFlagBits value)7847   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
7848   {
7849     switch ( value )
7850     {
7851       case QueueFlagBits::eGraphics : return "Graphics";
7852       case QueueFlagBits::eCompute : return "Compute";
7853       case QueueFlagBits::eTransfer : return "Transfer";
7854       case QueueFlagBits::eSparseBinding : return "SparseBinding";
7855       case QueueFlagBits::eProtected : return "Protected";
7856       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7857     }
7858   }
7859 
7860   enum class QueueGlobalPriorityEXT
7861   {
7862       eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT
7863     , eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
7864     , eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT
7865     , eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
7866   };
7867 
to_string(QueueGlobalPriorityEXT value)7868   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
7869   {
7870     switch ( value )
7871     {
7872       case QueueGlobalPriorityEXT::eLow : return "Low";
7873       case QueueGlobalPriorityEXT::eMedium : return "Medium";
7874       case QueueGlobalPriorityEXT::eHigh : return "High";
7875       case QueueGlobalPriorityEXT::eRealtime : return "Realtime";
7876       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7877     }
7878   }
7879 
7880   enum class RasterizationOrderAMD
7881   {
7882       eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD
7883     , eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
7884   };
7885 
to_string(RasterizationOrderAMD value)7886   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
7887   {
7888     switch ( value )
7889     {
7890       case RasterizationOrderAMD::eStrict : return "Strict";
7891       case RasterizationOrderAMD::eRelaxed : return "Relaxed";
7892       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7893     }
7894   }
7895 
7896   enum class RayTracingShaderGroupTypeKHR
7897   {
7898       eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR
7899     , eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
7900     , eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
7901   };
7902   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
7903 
to_string(RayTracingShaderGroupTypeKHR value)7904   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
7905   {
7906     switch ( value )
7907     {
7908       case RayTracingShaderGroupTypeKHR::eGeneral : return "General";
7909       case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup : return "TrianglesHitGroup";
7910       case RayTracingShaderGroupTypeKHR::eProceduralHitGroup : return "ProceduralHitGroup";
7911       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7912     }
7913   }
7914 
7915   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
7916   {
7917       eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
7918   };
7919 
to_string(RenderPassCreateFlagBits value)7920   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value )
7921   {
7922     switch ( value )
7923     {
7924       case RenderPassCreateFlagBits::eTransformQCOM : return "TransformQCOM";
7925       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7926     }
7927   }
7928 
7929   enum class ResolveModeFlagBits : VkResolveModeFlags
7930   {
7931       eNone = VK_RESOLVE_MODE_NONE
7932     , eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT
7933     , eAverage = VK_RESOLVE_MODE_AVERAGE_BIT
7934     , eMin = VK_RESOLVE_MODE_MIN_BIT
7935     , eMax = VK_RESOLVE_MODE_MAX_BIT
7936   };
7937   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
7938 
to_string(ResolveModeFlagBits value)7939   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value )
7940   {
7941     switch ( value )
7942     {
7943       case ResolveModeFlagBits::eNone : return "None";
7944       case ResolveModeFlagBits::eSampleZero : return "SampleZero";
7945       case ResolveModeFlagBits::eAverage : return "Average";
7946       case ResolveModeFlagBits::eMin : return "Min";
7947       case ResolveModeFlagBits::eMax : return "Max";
7948       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7949     }
7950   }
7951 
7952   enum class Result
7953   {
7954     // clang-format off
7955       eSuccess = VK_SUCCESS
7956     , eNotReady = VK_NOT_READY
7957     , eTimeout = VK_TIMEOUT
7958     , eEventSet = VK_EVENT_SET
7959     , eEventReset = VK_EVENT_RESET
7960     , eIncomplete = VK_INCOMPLETE
7961     , eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY
7962     , eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY
7963     , eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED
7964     , eErrorDeviceLost = VK_ERROR_DEVICE_LOST
7965     , eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED
7966     , eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT
7967     , eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT
7968     , eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT
7969     , eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER
7970     , eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS
7971     , eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED
7972     , eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL
7973     , eErrorUnknown = VK_ERROR_UNKNOWN
7974     , eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY
7975     , eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE
7976     , eErrorFragmentation = VK_ERROR_FRAGMENTATION
7977     , eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS
7978     , eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR
7979     , eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR
7980     , eSuboptimalKHR = VK_SUBOPTIMAL_KHR
7981     , eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR
7982     , eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR
7983     , eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT
7984     , eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV
7985     , eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT
7986     , eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT
7987 #ifdef VK_USE_PLATFORM_WIN32_KHR
7988     , eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
7989 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
7990     , eThreadIdleKHR = VK_THREAD_IDLE_KHR
7991     , eThreadDoneKHR = VK_THREAD_DONE_KHR
7992     , eOperationDeferredKHR = VK_OPERATION_DEFERRED_KHR
7993     , eOperationNotDeferredKHR = VK_OPERATION_NOT_DEFERRED_KHR
7994     , ePipelineCompileRequiredEXT = VK_PIPELINE_COMPILE_REQUIRED_EXT
7995     , eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT
7996     , eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT
7997     , eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR
7998     , eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR
7999     , eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR
8000     , eErrorPipelineCompileRequiredEXT = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT
8001     // clang-format on
8002   };
8003 
to_string(Result value)8004   VULKAN_HPP_INLINE std::string to_string( Result value )
8005   {
8006     switch ( value )
8007     {
8008       case Result::eSuccess : return "Success";
8009       case Result::eNotReady : return "NotReady";
8010       case Result::eTimeout : return "Timeout";
8011       case Result::eEventSet : return "EventSet";
8012       case Result::eEventReset : return "EventReset";
8013       case Result::eIncomplete : return "Incomplete";
8014       case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory";
8015       case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory";
8016       case Result::eErrorInitializationFailed : return "ErrorInitializationFailed";
8017       case Result::eErrorDeviceLost : return "ErrorDeviceLost";
8018       case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed";
8019       case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent";
8020       case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent";
8021       case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent";
8022       case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver";
8023       case Result::eErrorTooManyObjects : return "ErrorTooManyObjects";
8024       case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported";
8025       case Result::eErrorFragmentedPool : return "ErrorFragmentedPool";
8026       case Result::eErrorUnknown : return "ErrorUnknown";
8027       case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory";
8028       case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle";
8029       case Result::eErrorFragmentation : return "ErrorFragmentation";
8030       case Result::eErrorInvalidOpaqueCaptureAddress : return "ErrorInvalidOpaqueCaptureAddress";
8031       case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR";
8032       case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR";
8033       case Result::eSuboptimalKHR : return "SuboptimalKHR";
8034       case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR";
8035       case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR";
8036       case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT";
8037       case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV";
8038       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
8039       case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT";
8040 #ifdef VK_USE_PLATFORM_WIN32_KHR
8041       case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT";
8042 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8043       case Result::eThreadIdleKHR : return "ThreadIdleKHR";
8044       case Result::eThreadDoneKHR : return "ThreadDoneKHR";
8045       case Result::eOperationDeferredKHR : return "OperationDeferredKHR";
8046       case Result::eOperationNotDeferredKHR : return "OperationNotDeferredKHR";
8047       case Result::ePipelineCompileRequiredEXT : return "PipelineCompileRequiredEXT";
8048       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8049     }
8050   }
8051 
8052   enum class SampleCountFlagBits : VkSampleCountFlags
8053   {
8054       e1 = VK_SAMPLE_COUNT_1_BIT
8055     , e2 = VK_SAMPLE_COUNT_2_BIT
8056     , e4 = VK_SAMPLE_COUNT_4_BIT
8057     , e8 = VK_SAMPLE_COUNT_8_BIT
8058     , e16 = VK_SAMPLE_COUNT_16_BIT
8059     , e32 = VK_SAMPLE_COUNT_32_BIT
8060     , e64 = VK_SAMPLE_COUNT_64_BIT
8061   };
8062 
to_string(SampleCountFlagBits value)8063   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
8064   {
8065     switch ( value )
8066     {
8067       case SampleCountFlagBits::e1 : return "1";
8068       case SampleCountFlagBits::e2 : return "2";
8069       case SampleCountFlagBits::e4 : return "4";
8070       case SampleCountFlagBits::e8 : return "8";
8071       case SampleCountFlagBits::e16 : return "16";
8072       case SampleCountFlagBits::e32 : return "32";
8073       case SampleCountFlagBits::e64 : return "64";
8074       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8075     }
8076   }
8077 
8078   enum class SamplerAddressMode
8079   {
8080       eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT
8081     , eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT
8082     , eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
8083     , eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
8084     , eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
8085     , eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
8086   };
8087 
to_string(SamplerAddressMode value)8088   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
8089   {
8090     switch ( value )
8091     {
8092       case SamplerAddressMode::eRepeat : return "Repeat";
8093       case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat";
8094       case SamplerAddressMode::eClampToEdge : return "ClampToEdge";
8095       case SamplerAddressMode::eClampToBorder : return "ClampToBorder";
8096       case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge";
8097       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8098     }
8099   }
8100 
8101   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
8102   {
8103       eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT
8104     , eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
8105   };
8106 
to_string(SamplerCreateFlagBits value)8107   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
8108   {
8109     switch ( value )
8110     {
8111       case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
8112       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT";
8113       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8114     }
8115   }
8116 
8117   enum class SamplerMipmapMode
8118   {
8119       eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST
8120     , eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR
8121   };
8122 
to_string(SamplerMipmapMode value)8123   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
8124   {
8125     switch ( value )
8126     {
8127       case SamplerMipmapMode::eNearest : return "Nearest";
8128       case SamplerMipmapMode::eLinear : return "Linear";
8129       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8130     }
8131   }
8132 
8133   enum class SamplerReductionMode
8134   {
8135       eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
8136     , eMin = VK_SAMPLER_REDUCTION_MODE_MIN
8137     , eMax = VK_SAMPLER_REDUCTION_MODE_MAX
8138   };
8139   using SamplerReductionModeEXT = SamplerReductionMode;
8140 
to_string(SamplerReductionMode value)8141   VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value )
8142   {
8143     switch ( value )
8144     {
8145       case SamplerReductionMode::eWeightedAverage : return "WeightedAverage";
8146       case SamplerReductionMode::eMin : return "Min";
8147       case SamplerReductionMode::eMax : return "Max";
8148       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8149     }
8150   }
8151 
8152   enum class SamplerYcbcrModelConversion
8153   {
8154       eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY
8155     , eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY
8156     , eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709
8157     , eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601
8158     , eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
8159   };
8160   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
8161 
to_string(SamplerYcbcrModelConversion value)8162   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
8163   {
8164     switch ( value )
8165     {
8166       case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity";
8167       case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity";
8168       case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709";
8169       case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601";
8170       case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020";
8171       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8172     }
8173   }
8174 
8175   enum class SamplerYcbcrRange
8176   {
8177       eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL
8178     , eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
8179   };
8180   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
8181 
to_string(SamplerYcbcrRange value)8182   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
8183   {
8184     switch ( value )
8185     {
8186       case SamplerYcbcrRange::eItuFull : return "ItuFull";
8187       case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow";
8188       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8189     }
8190   }
8191 
8192   enum class ScopeNV
8193   {
8194       eDevice = VK_SCOPE_DEVICE_NV
8195     , eWorkgroup = VK_SCOPE_WORKGROUP_NV
8196     , eSubgroup = VK_SCOPE_SUBGROUP_NV
8197     , eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
8198   };
8199 
to_string(ScopeNV value)8200   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
8201   {
8202     switch ( value )
8203     {
8204       case ScopeNV::eDevice : return "Device";
8205       case ScopeNV::eWorkgroup : return "Workgroup";
8206       case ScopeNV::eSubgroup : return "Subgroup";
8207       case ScopeNV::eQueueFamily : return "QueueFamily";
8208       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8209     }
8210   }
8211 
8212   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
8213   {
8214       eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
8215   };
8216   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
8217 
to_string(SemaphoreImportFlagBits value)8218   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
8219   {
8220     switch ( value )
8221     {
8222       case SemaphoreImportFlagBits::eTemporary : return "Temporary";
8223       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8224     }
8225   }
8226 
8227   enum class SemaphoreType
8228   {
8229       eBinary = VK_SEMAPHORE_TYPE_BINARY
8230     , eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
8231   };
8232   using SemaphoreTypeKHR = SemaphoreType;
8233 
to_string(SemaphoreType value)8234   VULKAN_HPP_INLINE std::string to_string( SemaphoreType value )
8235   {
8236     switch ( value )
8237     {
8238       case SemaphoreType::eBinary : return "Binary";
8239       case SemaphoreType::eTimeline : return "Timeline";
8240       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8241     }
8242   }
8243 
8244   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
8245   {
8246       eAny = VK_SEMAPHORE_WAIT_ANY_BIT
8247   };
8248   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
8249 
to_string(SemaphoreWaitFlagBits value)8250   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value )
8251   {
8252     switch ( value )
8253     {
8254       case SemaphoreWaitFlagBits::eAny : return "Any";
8255       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8256     }
8257   }
8258 
8259   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
8260   {
8261   };
8262 
to_string(ShaderCorePropertiesFlagBitsAMD)8263   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
8264   {
8265     return "(void)";
8266   }
8267 
8268   enum class ShaderFloatControlsIndependence
8269   {
8270       e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
8271     , eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
8272     , eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
8273   };
8274   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
8275 
to_string(ShaderFloatControlsIndependence value)8276   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value )
8277   {
8278     switch ( value )
8279     {
8280       case ShaderFloatControlsIndependence::e32BitOnly : return "32BitOnly";
8281       case ShaderFloatControlsIndependence::eAll : return "All";
8282       case ShaderFloatControlsIndependence::eNone : return "None";
8283       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8284     }
8285   }
8286 
8287   enum class ShaderGroupShaderKHR
8288   {
8289       eGeneral = VK_SHADER_GROUP_SHADER_GENERAL_KHR
8290     , eClosestHit = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR
8291     , eAnyHit = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR
8292     , eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR
8293   };
8294 
to_string(ShaderGroupShaderKHR value)8295   VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value )
8296   {
8297     switch ( value )
8298     {
8299       case ShaderGroupShaderKHR::eGeneral : return "General";
8300       case ShaderGroupShaderKHR::eClosestHit : return "ClosestHit";
8301       case ShaderGroupShaderKHR::eAnyHit : return "AnyHit";
8302       case ShaderGroupShaderKHR::eIntersection : return "Intersection";
8303       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8304     }
8305   }
8306 
8307   enum class ShaderInfoTypeAMD
8308   {
8309       eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD
8310     , eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD
8311     , eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
8312   };
8313 
to_string(ShaderInfoTypeAMD value)8314   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
8315   {
8316     switch ( value )
8317     {
8318       case ShaderInfoTypeAMD::eStatistics : return "Statistics";
8319       case ShaderInfoTypeAMD::eBinary : return "Binary";
8320       case ShaderInfoTypeAMD::eDisassembly : return "Disassembly";
8321       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8322     }
8323   }
8324 
8325   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
8326   {
8327   };
8328 
to_string(ShaderModuleCreateFlagBits)8329   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
8330   {
8331     return "(void)";
8332   }
8333 
8334   enum class ShaderStageFlagBits : VkShaderStageFlags
8335   {
8336       eVertex = VK_SHADER_STAGE_VERTEX_BIT
8337     , eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
8338     , eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
8339     , eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT
8340     , eFragment = VK_SHADER_STAGE_FRAGMENT_BIT
8341     , eCompute = VK_SHADER_STAGE_COMPUTE_BIT
8342     , eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS
8343     , eAll = VK_SHADER_STAGE_ALL
8344     , eRaygenKHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR
8345     , eAnyHitKHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR
8346     , eClosestHitKHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR
8347     , eMissKHR = VK_SHADER_STAGE_MISS_BIT_KHR
8348     , eIntersectionKHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR
8349     , eCallableKHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR
8350     , eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV
8351     , eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV
8352     , eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV
8353     , eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV
8354     , eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV
8355     , eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV
8356     , eMissNV = VK_SHADER_STAGE_MISS_BIT_NV
8357     , eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV
8358   };
8359 
to_string(ShaderStageFlagBits value)8360   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
8361   {
8362     switch ( value )
8363     {
8364       case ShaderStageFlagBits::eVertex : return "Vertex";
8365       case ShaderStageFlagBits::eTessellationControl : return "TessellationControl";
8366       case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation";
8367       case ShaderStageFlagBits::eGeometry : return "Geometry";
8368       case ShaderStageFlagBits::eFragment : return "Fragment";
8369       case ShaderStageFlagBits::eCompute : return "Compute";
8370       case ShaderStageFlagBits::eAllGraphics : return "AllGraphics";
8371       case ShaderStageFlagBits::eAll : return "All";
8372       case ShaderStageFlagBits::eRaygenKHR : return "RaygenKHR";
8373       case ShaderStageFlagBits::eAnyHitKHR : return "AnyHitKHR";
8374       case ShaderStageFlagBits::eClosestHitKHR : return "ClosestHitKHR";
8375       case ShaderStageFlagBits::eMissKHR : return "MissKHR";
8376       case ShaderStageFlagBits::eIntersectionKHR : return "IntersectionKHR";
8377       case ShaderStageFlagBits::eCallableKHR : return "CallableKHR";
8378       case ShaderStageFlagBits::eTaskNV : return "TaskNV";
8379       case ShaderStageFlagBits::eMeshNV : return "MeshNV";
8380       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8381     }
8382   }
8383 
8384   enum class ShadingRatePaletteEntryNV
8385   {
8386       eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV
8387     , e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV
8388     , e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV
8389     , e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV
8390     , e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV
8391     , e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV
8392     , e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV
8393     , e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV
8394     , e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV
8395     , e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV
8396     , e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV
8397     , e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
8398   };
8399 
to_string(ShadingRatePaletteEntryNV value)8400   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
8401   {
8402     switch ( value )
8403     {
8404       case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations";
8405       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
8406       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
8407       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
8408       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
8409       case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel";
8410       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
8411       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
8412       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
8413       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
8414       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
8415       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
8416       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8417     }
8418   }
8419 
8420   enum class SharingMode
8421   {
8422       eExclusive = VK_SHARING_MODE_EXCLUSIVE
8423     , eConcurrent = VK_SHARING_MODE_CONCURRENT
8424   };
8425 
to_string(SharingMode value)8426   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
8427   {
8428     switch ( value )
8429     {
8430       case SharingMode::eExclusive : return "Exclusive";
8431       case SharingMode::eConcurrent : return "Concurrent";
8432       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8433     }
8434   }
8435 
8436   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
8437   {
8438       eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
8439     , eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT
8440     , eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
8441   };
8442 
to_string(SparseImageFormatFlagBits value)8443   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
8444   {
8445     switch ( value )
8446     {
8447       case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail";
8448       case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize";
8449       case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize";
8450       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8451     }
8452   }
8453 
8454   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
8455   {
8456       eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
8457   };
8458 
to_string(SparseMemoryBindFlagBits value)8459   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
8460   {
8461     switch ( value )
8462     {
8463       case SparseMemoryBindFlagBits::eMetadata : return "Metadata";
8464       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8465     }
8466   }
8467 
8468   enum class StencilFaceFlagBits : VkStencilFaceFlags
8469   {
8470       eFront = VK_STENCIL_FACE_FRONT_BIT
8471     , eBack = VK_STENCIL_FACE_BACK_BIT
8472     , eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK
8473     , eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
8474   };
8475 
to_string(StencilFaceFlagBits value)8476   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
8477   {
8478     switch ( value )
8479     {
8480       case StencilFaceFlagBits::eFront : return "Front";
8481       case StencilFaceFlagBits::eBack : return "Back";
8482       case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack";
8483       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8484     }
8485   }
8486 
8487   enum class StencilOp
8488   {
8489       eKeep = VK_STENCIL_OP_KEEP
8490     , eZero = VK_STENCIL_OP_ZERO
8491     , eReplace = VK_STENCIL_OP_REPLACE
8492     , eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP
8493     , eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP
8494     , eInvert = VK_STENCIL_OP_INVERT
8495     , eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP
8496     , eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP
8497   };
8498 
to_string(StencilOp value)8499   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
8500   {
8501     switch ( value )
8502     {
8503       case StencilOp::eKeep : return "Keep";
8504       case StencilOp::eZero : return "Zero";
8505       case StencilOp::eReplace : return "Replace";
8506       case StencilOp::eIncrementAndClamp : return "IncrementAndClamp";
8507       case StencilOp::eDecrementAndClamp : return "DecrementAndClamp";
8508       case StencilOp::eInvert : return "Invert";
8509       case StencilOp::eIncrementAndWrap : return "IncrementAndWrap";
8510       case StencilOp::eDecrementAndWrap : return "DecrementAndWrap";
8511       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8512     }
8513   }
8514 
8515   enum class StructureType
8516   {
8517     // clang-format off
8518       eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO
8519     , eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
8520     , eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
8521     , eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
8522     , eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO
8523     , eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
8524     , eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
8525     , eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
8526     , eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
8527     , eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
8528     , eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
8529     , eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
8530     , eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
8531     , eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
8532     , eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
8533     , eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
8534     , eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
8535     , ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
8536     , ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
8537     , ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
8538     , ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
8539     , ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
8540     , ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
8541     , ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
8542     , ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
8543     , ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
8544     , ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
8545     , ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
8546     , eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
8547     , eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
8548     , ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
8549     , eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
8550     , eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
8551     , eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
8552     , eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
8553     , eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
8554     , eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
8555     , eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
8556     , eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
8557     , eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
8558     , eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
8559     , eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
8560     , eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
8561     , eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
8562     , eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
8563     , eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
8564     , eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER
8565     , eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
8566     , eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
8567     , ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
8568     , eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
8569     , eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
8570     , ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
8571     , eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
8572     , eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
8573     , eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
8574     , eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
8575     , eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
8576     , eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
8577     , eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
8578     , eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
8579     , eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
8580     , ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
8581     , eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
8582     , eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
8583     , eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
8584     , eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
8585     , eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
8586     , eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
8587     , ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
8588     , ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
8589     , eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2
8590     , eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
8591     , ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
8592     , eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
8593     , ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
8594     , eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
8595     , ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
8596     , ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
8597     , eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
8598     , eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
8599     , ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
8600     , eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
8601     , ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
8602     , ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
8603     , ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
8604     , eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
8605     , ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
8606     , ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
8607     , eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
8608     , eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
8609     , eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
8610     , eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
8611     , eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
8612     , ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
8613     , eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
8614     , eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
8615     , ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
8616     , eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
8617     , ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
8618     , eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
8619     , ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
8620     , eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
8621     , eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
8622     , eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
8623     , ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
8624     , eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
8625     , eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
8626     , eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
8627     , ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
8628     , eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
8629     , ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
8630     , eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
8631     , ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
8632     , ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
8633     , ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
8634     , ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
8635     , ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
8636     , eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
8637     , eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
8638     , eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
8639     , eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
8640     , eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
8641     , eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
8642     , eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
8643     , eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO
8644     , ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
8645     , ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
8646     , ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
8647     , ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
8648     , ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
8649     , eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
8650     , ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
8651     , ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
8652     , eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
8653     , eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
8654     , ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
8655     , eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
8656     , ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
8657     , eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
8658     , ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
8659     , eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
8660     , ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
8661     , ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
8662     , eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
8663     , eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
8664     , eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
8665     , ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
8666     , ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
8667     , ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
8668     , eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
8669     , eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
8670     , ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
8671     , ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
8672     , ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
8673     , eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
8674     , eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
8675     , eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
8676     , eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
8677     , ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
8678     , eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
8679     , eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
8680     , eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
8681     , eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
8682     , eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
8683     , ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR
8684     , eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
8685     , eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
8686     , eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
8687     , eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
8688     , eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
8689     , eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
8690     , eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
8691     , eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
8692     , eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
8693 #ifdef VK_USE_PLATFORM_XLIB_KHR
8694     , eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
8695 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
8696 #ifdef VK_USE_PLATFORM_XCB_KHR
8697     , eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
8698 #endif /*VK_USE_PLATFORM_XCB_KHR*/
8699 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
8700     , eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
8701 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
8702 #ifdef VK_USE_PLATFORM_ANDROID_KHR
8703     , eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
8704 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
8705 #ifdef VK_USE_PLATFORM_WIN32_KHR
8706     , eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
8707 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8708     , eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
8709     , ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
8710     , eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
8711     , eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
8712     , eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
8713     , eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
8714     , eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
8715     , eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
8716     , ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
8717     , ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
8718     , ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
8719     , eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
8720     , eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
8721     , eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
8722 #ifdef VK_USE_PLATFORM_GGP
8723     , eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
8724 #endif /*VK_USE_PLATFORM_GGP*/
8725     , ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
8726     , eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
8727     , eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
8728 #ifdef VK_USE_PLATFORM_WIN32_KHR
8729     , eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
8730     , eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
8731     , eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
8732 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8733     , eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
8734 #ifdef VK_USE_PLATFORM_VI_NN
8735     , eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
8736 #endif /*VK_USE_PLATFORM_VI_NN*/
8737     , ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT
8738     , eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
8739     , ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
8740 #ifdef VK_USE_PLATFORM_WIN32_KHR
8741     , eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
8742     , eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
8743     , eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
8744     , eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
8745 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8746     , eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
8747     , eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
8748     , eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
8749 #ifdef VK_USE_PLATFORM_WIN32_KHR
8750     , eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
8751     , eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
8752     , eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
8753     , eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
8754     , eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
8755 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8756     , eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
8757     , eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
8758     , ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
8759     , eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
8760     , ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
8761     , eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
8762     , ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR
8763     , ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
8764     , eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
8765     , eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
8766     , eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
8767     , eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
8768     , eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
8769     , ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
8770     , ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
8771     , ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
8772     , ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
8773     , ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
8774     , ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
8775     , ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
8776     , ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
8777     , ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
8778     , eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT
8779     , eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
8780 #ifdef VK_USE_PLATFORM_WIN32_KHR
8781     , eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
8782     , eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
8783     , eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
8784 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8785     , eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
8786     , eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
8787     , ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
8788     , ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
8789     , eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
8790     , ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
8791     , eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
8792     , ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
8793     , ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
8794     , ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
8795     , eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
8796     , eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
8797     , eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
8798     , eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
8799     , eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
8800     , eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
8801     , eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
8802 #ifdef VK_USE_PLATFORM_IOS_MVK
8803     , eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
8804 #endif /*VK_USE_PLATFORM_IOS_MVK*/
8805 #ifdef VK_USE_PLATFORM_MACOS_MVK
8806     , eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
8807 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
8808     , eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
8809     , eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
8810     , eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
8811     , eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
8812     , eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
8813 #ifdef VK_USE_PLATFORM_ANDROID_KHR
8814     , eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
8815     , eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
8816     , eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
8817     , eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
8818     , eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
8819     , eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
8820 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
8821     , ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT
8822     , ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT
8823     , eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT
8824     , eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT
8825     , eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
8826     , eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
8827     , ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
8828     , ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
8829     , eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
8830     , ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
8831     , ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
8832     , ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
8833     , ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
8834     , eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
8835     , eAccelerationStructureBuildGeometryInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
8836     , eAccelerationStructureDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
8837     , eAccelerationStructureGeometryAabbsDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
8838     , eAccelerationStructureGeometryInstancesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
8839     , eAccelerationStructureGeometryTrianglesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
8840     , eAccelerationStructureGeometryKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
8841     , eAccelerationStructureVersionInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
8842     , eCopyAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
8843     , eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
8844     , eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
8845     , ePhysicalDeviceAccelerationStructureFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
8846     , ePhysicalDeviceAccelerationStructurePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
8847     , eAccelerationStructureCreateInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
8848     , eAccelerationStructureBuildSizesInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
8849     , ePhysicalDeviceRayTracingPipelineFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
8850     , ePhysicalDeviceRayTracingPipelinePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
8851     , eRayTracingPipelineCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
8852     , eRayTracingShaderGroupCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
8853     , eRayTracingPipelineInterfaceCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
8854     , ePhysicalDeviceRayQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
8855     , ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
8856     , ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
8857     , ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
8858     , eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
8859     , ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
8860     , eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
8861     , eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
8862     , eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
8863     , eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
8864     , eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
8865 #ifdef VK_ENABLE_BETA_EXTENSIONS
8866     , ePhysicalDevicePortabilitySubsetFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
8867     , ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
8868 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8869     , ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
8870     , ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
8871     , ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
8872     , ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
8873     , eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
8874     , eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
8875     , eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV
8876     , eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
8877     , eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV
8878     , eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
8879     , eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
8880     , eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
8881     , ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
8882     , eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
8883     , eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
8884     , ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
8885     , ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
8886     , ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
8887     , eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
8888     , eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
8889     , eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
8890     , eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
8891     , ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
8892     , ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
8893     , ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
8894     , eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT
8895     , ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
8896     , eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
8897     , ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
8898     , ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT
8899     , ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT
8900 #ifdef VK_USE_PLATFORM_GGP
8901     , ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
8902 #endif /*VK_USE_PLATFORM_GGP*/
8903     , ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT
8904     , ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
8905     , ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
8906     , ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
8907     , ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV
8908     , ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
8909     , ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
8910     , ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
8911     , eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
8912     , eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
8913     , ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
8914     , eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
8915     , eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
8916     , ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
8917     , ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
8918     , ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
8919     , ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
8920     , ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
8921     , eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
8922     , eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
8923 #ifdef VK_USE_PLATFORM_FUCHSIA
8924     , eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
8925 #endif /*VK_USE_PLATFORM_FUCHSIA*/
8926     , ePhysicalDeviceShaderTerminateInvocationFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR
8927 #ifdef VK_USE_PLATFORM_METAL_EXT
8928     , eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
8929 #endif /*VK_USE_PLATFORM_METAL_EXT*/
8930     , ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
8931     , ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
8932     , eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
8933     , ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT
8934     , ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT
8935     , ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT
8936     , eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
8937     , ePipelineFragmentShadingRateStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
8938     , ePhysicalDeviceFragmentShadingRatePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
8939     , ePhysicalDeviceFragmentShadingRateFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
8940     , ePhysicalDeviceFragmentShadingRateKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
8941     , ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
8942     , ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
8943     , ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
8944     , ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
8945     , ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
8946     , eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
8947     , eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
8948     , ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
8949     , ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
8950     , eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
8951     , ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT
8952     , eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
8953     , ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
8954     , eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
8955     , ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
8956     , ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
8957     , ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
8958     , eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
8959     , ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
8960     , ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
8961 #ifdef VK_USE_PLATFORM_WIN32_KHR
8962     , eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
8963     , eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
8964     , eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
8965 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8966     , eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
8967     , ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT
8968     , ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT
8969     , ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
8970     , ePhysicalDeviceShaderAtomicFloatFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
8971     , ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT
8972     , ePhysicalDeviceExtendedDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
8973     , ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
8974     , ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR
8975     , ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
8976     , ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
8977     , ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
8978     , ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
8979     , ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT
8980     , ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
8981     , eGraphicsShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
8982     , eGraphicsPipelineShaderGroupsCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
8983     , eIndirectCommandsLayoutTokenNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
8984     , eIndirectCommandsLayoutCreateInfoNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
8985     , eGeneratedCommandsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
8986     , eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
8987     , ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
8988     , ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
8989     , ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT
8990     , eCommandBufferInheritanceRenderPassTransformInfoQCOM = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
8991     , eRenderPassTransformBeginInfoQCOM = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM
8992     , ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
8993     , eDeviceDeviceMemoryReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
8994     , eDeviceMemoryReportCallbackDataEXT = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
8995     , ePhysicalDeviceRobustness2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
8996     , ePhysicalDeviceRobustness2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
8997     , eSamplerCustomBorderColorCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
8998     , ePhysicalDeviceCustomBorderColorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
8999     , ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
9000     , ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
9001     , ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT
9002     , eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT
9003     , ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT
9004     , ePhysicalDevicePipelineCreationCacheControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT
9005     , ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
9006     , eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
9007     , eMemoryBarrier2KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR
9008     , eBufferMemoryBarrier2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR
9009     , eImageMemoryBarrier2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR
9010     , eDependencyInfoKHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR
9011     , eSubmitInfo2KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR
9012     , eSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR
9013     , eCommandBufferSubmitInfoKHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR
9014     , ePhysicalDeviceSynchronization2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR
9015     , eQueueFamilyCheckpointProperties2Nv = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
9016     , eCheckpointData2Nv = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
9017     , ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR
9018     , ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
9019     , ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
9020     , ePipelineFragmentShadingRateEnumStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
9021     , ePhysicalDeviceFragmentDensityMap2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
9022     , ePhysicalDeviceFragmentDensityMap2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
9023     , eCopyCommandTransformInfoQCOM = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
9024     , ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT
9025     , ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
9026     , eCopyBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR
9027     , eCopyImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR
9028     , eCopyBufferToImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR
9029     , eCopyImageToBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR
9030     , eBlitImageInfo2KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR
9031     , eResolveImageInfo2KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR
9032     , eBufferCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR
9033     , eImageCopy2KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR
9034     , eImageBlit2KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR
9035     , eBufferImageCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR
9036     , eImageResolve2KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR
9037     , ePhysicalDevice4444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
9038 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
9039     , eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
9040 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
9041     , ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE
9042     , eMutableDescriptorTypeCreateInfoVALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE
9043 #ifdef VK_USE_PLATFORM_SCREEN_QNX
9044     , eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
9045 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
9046     , eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR
9047     , eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR
9048     , eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR
9049     , eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR
9050     , eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR
9051     , eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR
9052     , eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR
9053     , eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR
9054     , eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR
9055     , eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT
9056     , eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR
9057     , eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR
9058     , eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR
9059     , eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT
9060     , eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT
9061     , eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR
9062     , eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT
9063     , eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT
9064     , eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR
9065     , eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR
9066     , eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR
9067     , eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR
9068     , eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR
9069     , eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR
9070     , eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR
9071     , eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR
9072     , eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR
9073     , eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR
9074     , eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR
9075     , eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR
9076     , eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR
9077     , eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR
9078     , eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR
9079     , eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR
9080     , eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR
9081     , eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR
9082     , eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR
9083     , eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR
9084     , eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR
9085     , eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR
9086     , eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR
9087     , eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR
9088     , eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT
9089     , eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR
9090     , eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR
9091     , eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR
9092     , eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR
9093     , eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR
9094     , eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR
9095     , ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR
9096     , ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR
9097     , ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
9098     , ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR
9099     , ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR
9100     , ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT
9101     , ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT
9102     , ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR
9103     , ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR
9104     , ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR
9105     , ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR
9106     , ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR
9107     , ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR
9108     , ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR
9109     , ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR
9110     , ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR
9111     , ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT
9112     , ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR
9113     , ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR
9114     , ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR
9115     , ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR
9116     , ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR
9117     , ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR
9118     , ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR
9119     , ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR
9120     , ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR
9121     , ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT
9122     , ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR
9123     , ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT
9124     , ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR
9125     , ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR
9126     , ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES
9127     , ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR
9128     , ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR
9129     , ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR
9130     , ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR
9131     , ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR
9132     , ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR
9133     , ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR
9134     , ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
9135     , ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR
9136     , ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR
9137     , ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR
9138     , eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL
9139     , eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR
9140     , eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR
9141     , eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR
9142     , eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR
9143     , eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR
9144     , eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT
9145     , eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR
9146     , eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR
9147     , eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR
9148     , eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR
9149     , eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR
9150     , eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR
9151     , eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR
9152     , eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR
9153     , eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR
9154     , eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR
9155     , eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR
9156     , eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR
9157     , eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR
9158     , eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR
9159     // clang-format on
9160   };
9161 
to_string(StructureType value)9162   VULKAN_HPP_INLINE std::string to_string( StructureType value )
9163   {
9164     switch ( value )
9165     {
9166       case StructureType::eApplicationInfo : return "ApplicationInfo";
9167       case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo";
9168       case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo";
9169       case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo";
9170       case StructureType::eSubmitInfo : return "SubmitInfo";
9171       case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo";
9172       case StructureType::eMappedMemoryRange : return "MappedMemoryRange";
9173       case StructureType::eBindSparseInfo : return "BindSparseInfo";
9174       case StructureType::eFenceCreateInfo : return "FenceCreateInfo";
9175       case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo";
9176       case StructureType::eEventCreateInfo : return "EventCreateInfo";
9177       case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo";
9178       case StructureType::eBufferCreateInfo : return "BufferCreateInfo";
9179       case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo";
9180       case StructureType::eImageCreateInfo : return "ImageCreateInfo";
9181       case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo";
9182       case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo";
9183       case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo";
9184       case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo";
9185       case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo";
9186       case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo";
9187       case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo";
9188       case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo";
9189       case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo";
9190       case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo";
9191       case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo";
9192       case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo";
9193       case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo";
9194       case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo";
9195       case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo";
9196       case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo";
9197       case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo";
9198       case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo";
9199       case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo";
9200       case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo";
9201       case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet";
9202       case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet";
9203       case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo";
9204       case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo";
9205       case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo";
9206       case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo";
9207       case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo";
9208       case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo";
9209       case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo";
9210       case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier";
9211       case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier";
9212       case StructureType::eMemoryBarrier : return "MemoryBarrier";
9213       case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo";
9214       case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo";
9215       case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties";
9216       case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo";
9217       case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo";
9218       case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures";
9219       case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements";
9220       case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo";
9221       case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo";
9222       case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo";
9223       case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo";
9224       case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo";
9225       case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo";
9226       case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo";
9227       case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo";
9228       case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties";
9229       case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo";
9230       case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2";
9231       case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2";
9232       case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2";
9233       case StructureType::eMemoryRequirements2 : return "MemoryRequirements2";
9234       case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2";
9235       case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2";
9236       case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2";
9237       case StructureType::eFormatProperties2 : return "FormatProperties2";
9238       case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2";
9239       case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2";
9240       case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2";
9241       case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2";
9242       case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2";
9243       case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2";
9244       case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties";
9245       case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo";
9246       case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo";
9247       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo";
9248       case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo";
9249       case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures";
9250       case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties";
9251       case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures";
9252       case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo";
9253       case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures";
9254       case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties";
9255       case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2";
9256       case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo";
9257       case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo";
9258       case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo";
9259       case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo";
9260       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures";
9261       case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties";
9262       case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo";
9263       case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo";
9264       case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties";
9265       case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo";
9266       case StructureType::eExternalBufferProperties : return "ExternalBufferProperties";
9267       case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties";
9268       case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo";
9269       case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo";
9270       case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo";
9271       case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo";
9272       case StructureType::eExternalFenceProperties : return "ExternalFenceProperties";
9273       case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo";
9274       case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo";
9275       case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo";
9276       case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties";
9277       case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties";
9278       case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport";
9279       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures";
9280       case StructureType::ePhysicalDeviceVulkan11Features : return "PhysicalDeviceVulkan11Features";
9281       case StructureType::ePhysicalDeviceVulkan11Properties : return "PhysicalDeviceVulkan11Properties";
9282       case StructureType::ePhysicalDeviceVulkan12Features : return "PhysicalDeviceVulkan12Features";
9283       case StructureType::ePhysicalDeviceVulkan12Properties : return "PhysicalDeviceVulkan12Properties";
9284       case StructureType::eImageFormatListCreateInfo : return "ImageFormatListCreateInfo";
9285       case StructureType::eAttachmentDescription2 : return "AttachmentDescription2";
9286       case StructureType::eAttachmentReference2 : return "AttachmentReference2";
9287       case StructureType::eSubpassDescription2 : return "SubpassDescription2";
9288       case StructureType::eSubpassDependency2 : return "SubpassDependency2";
9289       case StructureType::eRenderPassCreateInfo2 : return "RenderPassCreateInfo2";
9290       case StructureType::eSubpassBeginInfo : return "SubpassBeginInfo";
9291       case StructureType::eSubpassEndInfo : return "SubpassEndInfo";
9292       case StructureType::ePhysicalDevice8BitStorageFeatures : return "PhysicalDevice8BitStorageFeatures";
9293       case StructureType::ePhysicalDeviceDriverProperties : return "PhysicalDeviceDriverProperties";
9294       case StructureType::ePhysicalDeviceShaderAtomicInt64Features : return "PhysicalDeviceShaderAtomicInt64Features";
9295       case StructureType::ePhysicalDeviceShaderFloat16Int8Features : return "PhysicalDeviceShaderFloat16Int8Features";
9296       case StructureType::ePhysicalDeviceFloatControlsProperties : return "PhysicalDeviceFloatControlsProperties";
9297       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo : return "DescriptorSetLayoutBindingFlagsCreateInfo";
9298       case StructureType::ePhysicalDeviceDescriptorIndexingFeatures : return "PhysicalDeviceDescriptorIndexingFeatures";
9299       case StructureType::ePhysicalDeviceDescriptorIndexingProperties : return "PhysicalDeviceDescriptorIndexingProperties";
9300       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo : return "DescriptorSetVariableDescriptorCountAllocateInfo";
9301       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport : return "DescriptorSetVariableDescriptorCountLayoutSupport";
9302       case StructureType::ePhysicalDeviceDepthStencilResolveProperties : return "PhysicalDeviceDepthStencilResolveProperties";
9303       case StructureType::eSubpassDescriptionDepthStencilResolve : return "SubpassDescriptionDepthStencilResolve";
9304       case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures : return "PhysicalDeviceScalarBlockLayoutFeatures";
9305       case StructureType::eImageStencilUsageCreateInfo : return "ImageStencilUsageCreateInfo";
9306       case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties : return "PhysicalDeviceSamplerFilterMinmaxProperties";
9307       case StructureType::eSamplerReductionModeCreateInfo : return "SamplerReductionModeCreateInfo";
9308       case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures : return "PhysicalDeviceVulkanMemoryModelFeatures";
9309       case StructureType::ePhysicalDeviceImagelessFramebufferFeatures : return "PhysicalDeviceImagelessFramebufferFeatures";
9310       case StructureType::eFramebufferAttachmentsCreateInfo : return "FramebufferAttachmentsCreateInfo";
9311       case StructureType::eFramebufferAttachmentImageInfo : return "FramebufferAttachmentImageInfo";
9312       case StructureType::eRenderPassAttachmentBeginInfo : return "RenderPassAttachmentBeginInfo";
9313       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures : return "PhysicalDeviceUniformBufferStandardLayoutFeatures";
9314       case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures : return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures";
9315       case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures : return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures";
9316       case StructureType::eAttachmentReferenceStencilLayout : return "AttachmentReferenceStencilLayout";
9317       case StructureType::eAttachmentDescriptionStencilLayout : return "AttachmentDescriptionStencilLayout";
9318       case StructureType::ePhysicalDeviceHostQueryResetFeatures : return "PhysicalDeviceHostQueryResetFeatures";
9319       case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures : return "PhysicalDeviceTimelineSemaphoreFeatures";
9320       case StructureType::ePhysicalDeviceTimelineSemaphoreProperties : return "PhysicalDeviceTimelineSemaphoreProperties";
9321       case StructureType::eSemaphoreTypeCreateInfo : return "SemaphoreTypeCreateInfo";
9322       case StructureType::eTimelineSemaphoreSubmitInfo : return "TimelineSemaphoreSubmitInfo";
9323       case StructureType::eSemaphoreWaitInfo : return "SemaphoreWaitInfo";
9324       case StructureType::eSemaphoreSignalInfo : return "SemaphoreSignalInfo";
9325       case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures : return "PhysicalDeviceBufferDeviceAddressFeatures";
9326       case StructureType::eBufferDeviceAddressInfo : return "BufferDeviceAddressInfo";
9327       case StructureType::eBufferOpaqueCaptureAddressCreateInfo : return "BufferOpaqueCaptureAddressCreateInfo";
9328       case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo : return "MemoryOpaqueCaptureAddressAllocateInfo";
9329       case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo : return "DeviceMemoryOpaqueCaptureAddressInfo";
9330       case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR";
9331       case StructureType::ePresentInfoKHR : return "PresentInfoKHR";
9332       case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR";
9333       case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR";
9334       case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR";
9335       case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR";
9336       case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR";
9337       case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR";
9338       case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR";
9339       case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR";
9340       case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR";
9341 #ifdef VK_USE_PLATFORM_XLIB_KHR
9342       case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR";
9343 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
9344 #ifdef VK_USE_PLATFORM_XCB_KHR
9345       case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR";
9346 #endif /*VK_USE_PLATFORM_XCB_KHR*/
9347 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
9348       case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR";
9349 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
9350 #ifdef VK_USE_PLATFORM_ANDROID_KHR
9351       case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR";
9352 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
9353 #ifdef VK_USE_PLATFORM_WIN32_KHR
9354       case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR";
9355 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
9356       case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT";
9357       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD";
9358       case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT";
9359       case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT";
9360       case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT";
9361       case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV";
9362       case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV";
9363       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV";
9364       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT";
9365       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT";
9366       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT";
9367       case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX";
9368       case StructureType::eImageViewAddressPropertiesNVX : return "ImageViewAddressPropertiesNVX";
9369       case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD";
9370 #ifdef VK_USE_PLATFORM_GGP
9371       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP";
9372 #endif /*VK_USE_PLATFORM_GGP*/
9373       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV";
9374       case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV";
9375       case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV";
9376 #ifdef VK_USE_PLATFORM_WIN32_KHR
9377       case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV";
9378       case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV";
9379       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV";
9380 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
9381       case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT";
9382 #ifdef VK_USE_PLATFORM_VI_NN
9383       case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN";
9384 #endif /*VK_USE_PLATFORM_VI_NN*/
9385       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
9386       case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT";
9387       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT";
9388 #ifdef VK_USE_PLATFORM_WIN32_KHR
9389       case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR";
9390       case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR";
9391       case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR";
9392       case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR";
9393 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
9394       case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR";
9395       case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR";
9396       case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR";
9397 #ifdef VK_USE_PLATFORM_WIN32_KHR
9398       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR";
9399       case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR";
9400       case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR";
9401       case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR";
9402       case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR";
9403 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
9404       case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR";
9405       case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR";
9406       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR";
9407       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT";
9408       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT";
9409       case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT";
9410       case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR";
9411       case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV";
9412       case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT";
9413       case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT";
9414       case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT";
9415       case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT";
9416       case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT";
9417       case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE";
9418       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
9419       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV";
9420       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT";
9421       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT";
9422       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
9423       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT";
9424       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT";
9425       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT";
9426       case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT";
9427       case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR";
9428 #ifdef VK_USE_PLATFORM_WIN32_KHR
9429       case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR";
9430       case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR";
9431       case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR";
9432 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
9433       case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR";
9434       case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR";
9435       case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR : return "PhysicalDevicePerformanceQueryFeaturesKHR";
9436       case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR : return "PhysicalDevicePerformanceQueryPropertiesKHR";
9437       case StructureType::eQueryPoolPerformanceCreateInfoKHR : return "QueryPoolPerformanceCreateInfoKHR";
9438       case StructureType::ePerformanceQuerySubmitInfoKHR : return "PerformanceQuerySubmitInfoKHR";
9439       case StructureType::eAcquireProfilingLockInfoKHR : return "AcquireProfilingLockInfoKHR";
9440       case StructureType::ePerformanceCounterKHR : return "PerformanceCounterKHR";
9441       case StructureType::ePerformanceCounterDescriptionKHR : return "PerformanceCounterDescriptionKHR";
9442       case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR";
9443       case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR";
9444       case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR";
9445       case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR";
9446       case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR";
9447       case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR";
9448       case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR";
9449       case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR";
9450 #ifdef VK_USE_PLATFORM_IOS_MVK
9451       case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK";
9452 #endif /*VK_USE_PLATFORM_IOS_MVK*/
9453 #ifdef VK_USE_PLATFORM_MACOS_MVK
9454       case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK";
9455 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
9456       case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT";
9457       case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT";
9458       case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT";
9459       case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT";
9460       case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT";
9461 #ifdef VK_USE_PLATFORM_ANDROID_KHR
9462       case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID";
9463       case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID";
9464       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID";
9465       case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID";
9466       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID";
9467       case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID";
9468 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
9469       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
9470       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
9471       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT";
9472       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
9473       case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT";
9474       case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT";
9475       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT";
9476       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT";
9477       case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT";
9478       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
9479       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
9480       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT";
9481       case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV";
9482       case StructureType::eWriteDescriptorSetAccelerationStructureKHR : return "WriteDescriptorSetAccelerationStructureKHR";
9483       case StructureType::eAccelerationStructureBuildGeometryInfoKHR : return "AccelerationStructureBuildGeometryInfoKHR";
9484       case StructureType::eAccelerationStructureDeviceAddressInfoKHR : return "AccelerationStructureDeviceAddressInfoKHR";
9485       case StructureType::eAccelerationStructureGeometryAabbsDataKHR : return "AccelerationStructureGeometryAabbsDataKHR";
9486       case StructureType::eAccelerationStructureGeometryInstancesDataKHR : return "AccelerationStructureGeometryInstancesDataKHR";
9487       case StructureType::eAccelerationStructureGeometryTrianglesDataKHR : return "AccelerationStructureGeometryTrianglesDataKHR";
9488       case StructureType::eAccelerationStructureGeometryKHR : return "AccelerationStructureGeometryKHR";
9489       case StructureType::eAccelerationStructureVersionInfoKHR : return "AccelerationStructureVersionInfoKHR";
9490       case StructureType::eCopyAccelerationStructureInfoKHR : return "CopyAccelerationStructureInfoKHR";
9491       case StructureType::eCopyAccelerationStructureToMemoryInfoKHR : return "CopyAccelerationStructureToMemoryInfoKHR";
9492       case StructureType::eCopyMemoryToAccelerationStructureInfoKHR : return "CopyMemoryToAccelerationStructureInfoKHR";
9493       case StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR : return "PhysicalDeviceAccelerationStructureFeaturesKHR";
9494       case StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR : return "PhysicalDeviceAccelerationStructurePropertiesKHR";
9495       case StructureType::eAccelerationStructureCreateInfoKHR : return "AccelerationStructureCreateInfoKHR";
9496       case StructureType::eAccelerationStructureBuildSizesInfoKHR : return "AccelerationStructureBuildSizesInfoKHR";
9497       case StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR : return "PhysicalDeviceRayTracingPipelineFeaturesKHR";
9498       case StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR : return "PhysicalDeviceRayTracingPipelinePropertiesKHR";
9499       case StructureType::eRayTracingPipelineCreateInfoKHR : return "RayTracingPipelineCreateInfoKHR";
9500       case StructureType::eRayTracingShaderGroupCreateInfoKHR : return "RayTracingShaderGroupCreateInfoKHR";
9501       case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR : return "RayTracingPipelineInterfaceCreateInfoKHR";
9502       case StructureType::ePhysicalDeviceRayQueryFeaturesKHR : return "PhysicalDeviceRayQueryFeaturesKHR";
9503       case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV";
9504       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
9505       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
9506       case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT";
9507       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
9508       case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT";
9509       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT";
9510       case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT";
9511       case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT";
9512       case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT";
9513 #ifdef VK_ENABLE_BETA_EXTENSIONS
9514       case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR : return "PhysicalDevicePortabilitySubsetFeaturesKHR";
9515       case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR : return "PhysicalDevicePortabilitySubsetPropertiesKHR";
9516 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9517       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV";
9518       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV";
9519       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV";
9520       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
9521       case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV";
9522       case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV";
9523       case StructureType::eGeometryNV : return "GeometryNV";
9524       case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV";
9525       case StructureType::eGeometryAabbNV : return "GeometryAabbNV";
9526       case StructureType::eBindAccelerationStructureMemoryInfoNV : return "BindAccelerationStructureMemoryInfoNV";
9527       case StructureType::eWriteDescriptorSetAccelerationStructureNV : return "WriteDescriptorSetAccelerationStructureNV";
9528       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV";
9529       case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV";
9530       case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV";
9531       case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV";
9532       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
9533       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
9534       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT";
9535       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT";
9536       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT";
9537       case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT";
9538       case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT";
9539       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
9540       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR : return "PhysicalDeviceShaderClockFeaturesKHR";
9541       case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD";
9542       case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT";
9543       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD";
9544       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD";
9545       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
9546       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT";
9547       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
9548 #ifdef VK_USE_PLATFORM_GGP
9549       case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP";
9550 #endif /*VK_USE_PLATFORM_GGP*/
9551       case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT";
9552       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
9553       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV";
9554       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV";
9555       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
9556       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV";
9557       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV";
9558       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV";
9559       case StructureType::eCheckpointDataNV : return "CheckpointDataNV";
9560       case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV";
9561       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
9562       case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL : return "QueryPoolPerformanceQueryCreateInfoINTEL";
9563       case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL";
9564       case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL";
9565       case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL";
9566       case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL";
9567       case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL";
9568       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT";
9569       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD";
9570       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD";
9571 #ifdef VK_USE_PLATFORM_FUCHSIA
9572       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA";
9573 #endif /*VK_USE_PLATFORM_FUCHSIA*/
9574       case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR : return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR";
9575 #ifdef VK_USE_PLATFORM_METAL_EXT
9576       case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT";
9577 #endif /*VK_USE_PLATFORM_METAL_EXT*/
9578       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
9579       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
9580       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT";
9581       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
9582       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
9583       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
9584       case StructureType::eFragmentShadingRateAttachmentInfoKHR : return "FragmentShadingRateAttachmentInfoKHR";
9585       case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR : return "PipelineFragmentShadingRateStateCreateInfoKHR";
9586       case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR : return "PhysicalDeviceFragmentShadingRatePropertiesKHR";
9587       case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR : return "PhysicalDeviceFragmentShadingRateFeaturesKHR";
9588       case StructureType::ePhysicalDeviceFragmentShadingRateKHR : return "PhysicalDeviceFragmentShadingRateKHR";
9589       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD";
9590       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD";
9591       case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT : return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT";
9592       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT";
9593       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT";
9594       case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT";
9595       case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR";
9596       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
9597       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
9598       case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT";
9599       case StructureType::ePhysicalDeviceToolPropertiesEXT : return "PhysicalDeviceToolPropertiesEXT";
9600       case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT";
9601       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV";
9602       case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV";
9603       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV";
9604       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV";
9605       case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV";
9606       case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV";
9607       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
9608       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
9609 #ifdef VK_USE_PLATFORM_WIN32_KHR
9610       case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT";
9611       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT";
9612       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT";
9613 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
9614       case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT";
9615       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT";
9616       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT";
9617       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT";
9618       case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT : return "PhysicalDeviceShaderAtomicFloatFeaturesEXT";
9619       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
9620       case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT : return "PhysicalDeviceExtendedDynamicStateFeaturesEXT";
9621       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
9622       case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR";
9623       case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR";
9624       case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR";
9625       case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR";
9626       case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR";
9627       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
9628       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV : return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
9629       case StructureType::eGraphicsShaderGroupCreateInfoNV : return "GraphicsShaderGroupCreateInfoNV";
9630       case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV : return "GraphicsPipelineShaderGroupsCreateInfoNV";
9631       case StructureType::eIndirectCommandsLayoutTokenNV : return "IndirectCommandsLayoutTokenNV";
9632       case StructureType::eIndirectCommandsLayoutCreateInfoNV : return "IndirectCommandsLayoutCreateInfoNV";
9633       case StructureType::eGeneratedCommandsInfoNV : return "GeneratedCommandsInfoNV";
9634       case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV : return "GeneratedCommandsMemoryRequirementsInfoNV";
9635       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV : return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
9636       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
9637       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
9638       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM : return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
9639       case StructureType::eRenderPassTransformBeginInfoQCOM : return "RenderPassTransformBeginInfoQCOM";
9640       case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT : return "PhysicalDeviceDeviceMemoryReportFeaturesEXT";
9641       case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT : return "DeviceDeviceMemoryReportCreateInfoEXT";
9642       case StructureType::eDeviceMemoryReportCallbackDataEXT : return "DeviceMemoryReportCallbackDataEXT";
9643       case StructureType::ePhysicalDeviceRobustness2FeaturesEXT : return "PhysicalDeviceRobustness2FeaturesEXT";
9644       case StructureType::ePhysicalDeviceRobustness2PropertiesEXT : return "PhysicalDeviceRobustness2PropertiesEXT";
9645       case StructureType::eSamplerCustomBorderColorCreateInfoEXT : return "SamplerCustomBorderColorCreateInfoEXT";
9646       case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT : return "PhysicalDeviceCustomBorderColorPropertiesEXT";
9647       case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT : return "PhysicalDeviceCustomBorderColorFeaturesEXT";
9648       case StructureType::ePipelineLibraryCreateInfoKHR : return "PipelineLibraryCreateInfoKHR";
9649       case StructureType::ePhysicalDevicePrivateDataFeaturesEXT : return "PhysicalDevicePrivateDataFeaturesEXT";
9650       case StructureType::eDevicePrivateDataCreateInfoEXT : return "DevicePrivateDataCreateInfoEXT";
9651       case StructureType::ePrivateDataSlotCreateInfoEXT : return "PrivateDataSlotCreateInfoEXT";
9652       case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT : return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT";
9653       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV : return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
9654       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV : return "DeviceDiagnosticsConfigCreateInfoNV";
9655       case StructureType::eMemoryBarrier2KHR : return "MemoryBarrier2KHR";
9656       case StructureType::eBufferMemoryBarrier2KHR : return "BufferMemoryBarrier2KHR";
9657       case StructureType::eImageMemoryBarrier2KHR : return "ImageMemoryBarrier2KHR";
9658       case StructureType::eDependencyInfoKHR : return "DependencyInfoKHR";
9659       case StructureType::eSubmitInfo2KHR : return "SubmitInfo2KHR";
9660       case StructureType::eSemaphoreSubmitInfoKHR : return "SemaphoreSubmitInfoKHR";
9661       case StructureType::eCommandBufferSubmitInfoKHR : return "CommandBufferSubmitInfoKHR";
9662       case StructureType::ePhysicalDeviceSynchronization2FeaturesKHR : return "PhysicalDeviceSynchronization2FeaturesKHR";
9663       case StructureType::eQueueFamilyCheckpointProperties2Nv : return "QueueFamilyCheckpointProperties2Nv";
9664       case StructureType::eCheckpointData2Nv : return "CheckpointData2Nv";
9665       case StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR : return "PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR";
9666       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV : return "PhysicalDeviceFragmentShadingRateEnumsPropertiesNV";
9667       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV : return "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV";
9668       case StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV : return "PipelineFragmentShadingRateEnumStateCreateInfoNV";
9669       case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT : return "PhysicalDeviceFragmentDensityMap2FeaturesEXT";
9670       case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT : return "PhysicalDeviceFragmentDensityMap2PropertiesEXT";
9671       case StructureType::eCopyCommandTransformInfoQCOM : return "CopyCommandTransformInfoQCOM";
9672       case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT : return "PhysicalDeviceImageRobustnessFeaturesEXT";
9673       case StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR : return "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR";
9674       case StructureType::eCopyBufferInfo2KHR : return "CopyBufferInfo2KHR";
9675       case StructureType::eCopyImageInfo2KHR : return "CopyImageInfo2KHR";
9676       case StructureType::eCopyBufferToImageInfo2KHR : return "CopyBufferToImageInfo2KHR";
9677       case StructureType::eCopyImageToBufferInfo2KHR : return "CopyImageToBufferInfo2KHR";
9678       case StructureType::eBlitImageInfo2KHR : return "BlitImageInfo2KHR";
9679       case StructureType::eResolveImageInfo2KHR : return "ResolveImageInfo2KHR";
9680       case StructureType::eBufferCopy2KHR : return "BufferCopy2KHR";
9681       case StructureType::eImageCopy2KHR : return "ImageCopy2KHR";
9682       case StructureType::eImageBlit2KHR : return "ImageBlit2KHR";
9683       case StructureType::eBufferImageCopy2KHR : return "BufferImageCopy2KHR";
9684       case StructureType::eImageResolve2KHR : return "ImageResolve2KHR";
9685       case StructureType::ePhysicalDevice4444FormatsFeaturesEXT : return "PhysicalDevice4444FormatsFeaturesEXT";
9686 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
9687       case StructureType::eDirectfbSurfaceCreateInfoEXT : return "DirectfbSurfaceCreateInfoEXT";
9688 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
9689       case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE : return "PhysicalDeviceMutableDescriptorTypeFeaturesVALVE";
9690       case StructureType::eMutableDescriptorTypeCreateInfoVALVE : return "MutableDescriptorTypeCreateInfoVALVE";
9691 #ifdef VK_USE_PLATFORM_SCREEN_QNX
9692       case StructureType::eScreenSurfaceCreateInfoQNX : return "ScreenSurfaceCreateInfoQNX";
9693 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
9694       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9695     }
9696   }
9697 
9698   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
9699   {
9700       eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT
9701     , eVote = VK_SUBGROUP_FEATURE_VOTE_BIT
9702     , eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT
9703     , eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT
9704     , eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT
9705     , eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
9706     , eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT
9707     , eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT
9708     , ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
9709   };
9710 
to_string(SubgroupFeatureFlagBits value)9711   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
9712   {
9713     switch ( value )
9714     {
9715       case SubgroupFeatureFlagBits::eBasic : return "Basic";
9716       case SubgroupFeatureFlagBits::eVote : return "Vote";
9717       case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic";
9718       case SubgroupFeatureFlagBits::eBallot : return "Ballot";
9719       case SubgroupFeatureFlagBits::eShuffle : return "Shuffle";
9720       case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative";
9721       case SubgroupFeatureFlagBits::eClustered : return "Clustered";
9722       case SubgroupFeatureFlagBits::eQuad : return "Quad";
9723       case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV";
9724       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9725     }
9726   }
9727 
9728   enum class SubmitFlagBitsKHR : VkSubmitFlagsKHR
9729   {
9730       eProtected = VK_SUBMIT_PROTECTED_BIT_KHR
9731   };
9732 
to_string(SubmitFlagBitsKHR value)9733   VULKAN_HPP_INLINE std::string to_string( SubmitFlagBitsKHR value )
9734   {
9735     switch ( value )
9736     {
9737       case SubmitFlagBitsKHR::eProtected : return "Protected";
9738       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9739     }
9740   }
9741 
9742   enum class SubpassContents
9743   {
9744       eInline = VK_SUBPASS_CONTENTS_INLINE
9745     , eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
9746   };
9747 
to_string(SubpassContents value)9748   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
9749   {
9750     switch ( value )
9751     {
9752       case SubpassContents::eInline : return "Inline";
9753       case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers";
9754       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9755     }
9756   }
9757 
9758   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
9759   {
9760       ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX
9761     , ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX
9762     , eFragmentRegionQCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM
9763     , eShaderResolveQCOM = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
9764   };
9765 
to_string(SubpassDescriptionFlagBits value)9766   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
9767   {
9768     switch ( value )
9769     {
9770       case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX";
9771       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX";
9772       case SubpassDescriptionFlagBits::eFragmentRegionQCOM : return "FragmentRegionQCOM";
9773       case SubpassDescriptionFlagBits::eShaderResolveQCOM : return "ShaderResolveQCOM";
9774       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9775     }
9776   }
9777 
9778   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
9779   {
9780       eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT
9781   };
9782 
to_string(SurfaceCounterFlagBitsEXT value)9783   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
9784   {
9785     switch ( value )
9786     {
9787       case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank";
9788       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9789     }
9790   }
9791 
9792   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
9793   {
9794       eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
9795     , eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR
9796     , eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR
9797     , eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
9798     , eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR
9799     , eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR
9800     , eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR
9801     , eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR
9802     , eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
9803   };
9804 
to_string(SurfaceTransformFlagBitsKHR value)9805   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
9806   {
9807     switch ( value )
9808     {
9809       case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity";
9810       case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90";
9811       case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180";
9812       case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270";
9813       case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror";
9814       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90";
9815       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180";
9816       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270";
9817       case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit";
9818       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9819     }
9820   }
9821 
9822   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
9823   {
9824       eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
9825     , eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR
9826     , eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
9827   };
9828 
to_string(SwapchainCreateFlagBitsKHR value)9829   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
9830   {
9831     switch ( value )
9832     {
9833       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
9834       case SwapchainCreateFlagBitsKHR::eProtected : return "Protected";
9835       case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat";
9836       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9837     }
9838   }
9839 
9840   enum class SystemAllocationScope
9841   {
9842       eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
9843     , eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT
9844     , eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE
9845     , eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE
9846     , eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
9847   };
9848 
to_string(SystemAllocationScope value)9849   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
9850   {
9851     switch ( value )
9852     {
9853       case SystemAllocationScope::eCommand : return "Command";
9854       case SystemAllocationScope::eObject : return "Object";
9855       case SystemAllocationScope::eCache : return "Cache";
9856       case SystemAllocationScope::eDevice : return "Device";
9857       case SystemAllocationScope::eInstance : return "Instance";
9858       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9859     }
9860   }
9861 
9862   enum class TessellationDomainOrigin
9863   {
9864       eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT
9865     , eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
9866   };
9867   using TessellationDomainOriginKHR = TessellationDomainOrigin;
9868 
to_string(TessellationDomainOrigin value)9869   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
9870   {
9871     switch ( value )
9872     {
9873       case TessellationDomainOrigin::eUpperLeft : return "UpperLeft";
9874       case TessellationDomainOrigin::eLowerLeft : return "LowerLeft";
9875       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9876     }
9877   }
9878 
9879   enum class TimeDomainEXT
9880   {
9881       eDevice = VK_TIME_DOMAIN_DEVICE_EXT
9882     , eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT
9883     , eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT
9884     , eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
9885   };
9886 
to_string(TimeDomainEXT value)9887   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
9888   {
9889     switch ( value )
9890     {
9891       case TimeDomainEXT::eDevice : return "Device";
9892       case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic";
9893       case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw";
9894       case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter";
9895       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9896     }
9897   }
9898 
9899   enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT
9900   {
9901       eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT
9902     , eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT
9903     , eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT
9904     , eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT
9905     , eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT
9906     , eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT
9907     , eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
9908   };
9909 
to_string(ToolPurposeFlagBitsEXT value)9910   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value )
9911   {
9912     switch ( value )
9913     {
9914       case ToolPurposeFlagBitsEXT::eValidation : return "Validation";
9915       case ToolPurposeFlagBitsEXT::eProfiling : return "Profiling";
9916       case ToolPurposeFlagBitsEXT::eTracing : return "Tracing";
9917       case ToolPurposeFlagBitsEXT::eAdditionalFeatures : return "AdditionalFeatures";
9918       case ToolPurposeFlagBitsEXT::eModifyingFeatures : return "ModifyingFeatures";
9919       case ToolPurposeFlagBitsEXT::eDebugReporting : return "DebugReporting";
9920       case ToolPurposeFlagBitsEXT::eDebugMarkers : return "DebugMarkers";
9921       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9922     }
9923   }
9924 
9925   enum class ValidationCacheHeaderVersionEXT
9926   {
9927       eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
9928   };
9929 
to_string(ValidationCacheHeaderVersionEXT value)9930   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
9931   {
9932     switch ( value )
9933     {
9934       case ValidationCacheHeaderVersionEXT::eOne : return "One";
9935       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9936     }
9937   }
9938 
9939   enum class ValidationCheckEXT
9940   {
9941       eAll = VK_VALIDATION_CHECK_ALL_EXT
9942     , eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
9943   };
9944 
to_string(ValidationCheckEXT value)9945   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
9946   {
9947     switch ( value )
9948     {
9949       case ValidationCheckEXT::eAll : return "All";
9950       case ValidationCheckEXT::eShaders : return "Shaders";
9951       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9952     }
9953   }
9954 
9955   enum class ValidationFeatureDisableEXT
9956   {
9957       eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT
9958     , eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT
9959     , eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT
9960     , eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT
9961     , eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT
9962     , eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT
9963     , eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
9964   };
9965 
to_string(ValidationFeatureDisableEXT value)9966   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
9967   {
9968     switch ( value )
9969     {
9970       case ValidationFeatureDisableEXT::eAll : return "All";
9971       case ValidationFeatureDisableEXT::eShaders : return "Shaders";
9972       case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety";
9973       case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters";
9974       case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes";
9975       case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks";
9976       case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles";
9977       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9978     }
9979   }
9980 
9981   enum class ValidationFeatureEnableEXT
9982   {
9983       eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
9984     , eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
9985     , eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT
9986     , eDebugPrintf = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
9987     , eSynchronizationValidation = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
9988   };
9989 
to_string(ValidationFeatureEnableEXT value)9990   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
9991   {
9992     switch ( value )
9993     {
9994       case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted";
9995       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot";
9996       case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices";
9997       case ValidationFeatureEnableEXT::eDebugPrintf : return "DebugPrintf";
9998       case ValidationFeatureEnableEXT::eSynchronizationValidation : return "SynchronizationValidation";
9999       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
10000     }
10001   }
10002 
10003   enum class VendorId
10004   {
10005       eVIV = VK_VENDOR_ID_VIV
10006     , eVSI = VK_VENDOR_ID_VSI
10007     , eKazan = VK_VENDOR_ID_KAZAN
10008     , eCodeplay = VK_VENDOR_ID_CODEPLAY
10009     , eMESA = VK_VENDOR_ID_MESA
10010     , ePocl = VK_VENDOR_ID_POCL
10011   };
10012 
to_string(VendorId value)10013   VULKAN_HPP_INLINE std::string to_string( VendorId value )
10014   {
10015     switch ( value )
10016     {
10017       case VendorId::eVIV : return "VIV";
10018       case VendorId::eVSI : return "VSI";
10019       case VendorId::eKazan : return "Kazan";
10020       case VendorId::eCodeplay : return "Codeplay";
10021       case VendorId::eMESA : return "MESA";
10022       case VendorId::ePocl : return "Pocl";
10023       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
10024     }
10025   }
10026 
10027   enum class VertexInputRate
10028   {
10029       eVertex = VK_VERTEX_INPUT_RATE_VERTEX
10030     , eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
10031   };
10032 
to_string(VertexInputRate value)10033   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
10034   {
10035     switch ( value )
10036     {
10037       case VertexInputRate::eVertex : return "Vertex";
10038       case VertexInputRate::eInstance : return "Instance";
10039       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
10040     }
10041   }
10042 
10043   enum class ViewportCoordinateSwizzleNV
10044   {
10045       ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV
10046     , eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV
10047     , ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV
10048     , eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV
10049     , ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV
10050     , eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV
10051     , ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV
10052     , eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
10053   };
10054 
to_string(ViewportCoordinateSwizzleNV value)10055   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
10056   {
10057     switch ( value )
10058     {
10059       case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX";
10060       case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX";
10061       case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY";
10062       case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY";
10063       case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ";
10064       case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ";
10065       case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW";
10066       case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW";
10067       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
10068     }
10069   }
10070 
10071   template<typename T>
10072   struct IndexTypeValue
10073   {};
10074 
10075   template <>
10076   struct IndexTypeValue<uint16_t>
10077   {
10078     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
10079   };
10080 
10081   template <>
10082   struct CppType<IndexType, IndexType::eUint16>
10083   {
10084     using Type = uint16_t;
10085   };
10086 
10087   template <>
10088   struct IndexTypeValue<uint32_t>
10089   {
10090     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
10091   };
10092 
10093   template <>
10094   struct CppType<IndexType, IndexType::eUint32>
10095   {
10096     using Type = uint32_t;
10097   };
10098 
10099   template <>
10100   struct IndexTypeValue<uint8_t>
10101   {
10102     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
10103   };
10104 
10105   template <>
10106   struct CppType<IndexType, IndexType::eUint8EXT>
10107   {
10108     using Type = uint8_t;
10109   };
10110 
10111 
10112   using AccelerationStructureCreateFlagsKHR = Flags<AccelerationStructureCreateFlagBitsKHR>;
10113 
10114   template <> struct FlagTraits<AccelerationStructureCreateFlagBitsKHR>
10115   {
10116     enum : VkFlags
10117     {
10118       allFlags =
10119           VkFlags( AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay )
10120     };
10121   };
10122 
operator |(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)10123   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator|( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10124   {
10125     return AccelerationStructureCreateFlagsKHR( bit0 ) | bit1;
10126   }
10127 
operator &(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)10128   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator&( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10129   {
10130     return AccelerationStructureCreateFlagsKHR( bit0 ) & bit1;
10131   }
10132 
operator ^(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)10133   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator^( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10134   {
10135     return AccelerationStructureCreateFlagsKHR( bit0 ) ^ bit1;
10136   }
10137 
operator ~(AccelerationStructureCreateFlagBitsKHR bits)10138   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator~( AccelerationStructureCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10139   {
10140     return ~( AccelerationStructureCreateFlagsKHR( bits ) );
10141   }
10142 
to_string(AccelerationStructureCreateFlagsKHR value)10143   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagsKHR value  )
10144   {
10145 
10146     if ( !value ) return "{}";
10147     std::string result;
10148 
10149     if ( value & AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
10150     return "{ " + result.substr(0, result.size() - 3) + " }";
10151   }
10152 
10153 
10154   using AccessFlags = Flags<AccessFlagBits>;
10155 
10156   template <> struct FlagTraits<AccessFlagBits>
10157   {
10158     enum : VkFlags
10159     {
10160       allFlags =
10161           VkFlags( AccessFlagBits::eIndirectCommandRead )
10162         | VkFlags( AccessFlagBits::eIndexRead )
10163         | VkFlags( AccessFlagBits::eVertexAttributeRead )
10164         | VkFlags( AccessFlagBits::eUniformRead )
10165         | VkFlags( AccessFlagBits::eInputAttachmentRead )
10166         | VkFlags( AccessFlagBits::eShaderRead )
10167         | VkFlags( AccessFlagBits::eShaderWrite )
10168         | VkFlags( AccessFlagBits::eColorAttachmentRead )
10169         | VkFlags( AccessFlagBits::eColorAttachmentWrite )
10170         | VkFlags( AccessFlagBits::eDepthStencilAttachmentRead )
10171         | VkFlags( AccessFlagBits::eDepthStencilAttachmentWrite )
10172         | VkFlags( AccessFlagBits::eTransferRead )
10173         | VkFlags( AccessFlagBits::eTransferWrite )
10174         | VkFlags( AccessFlagBits::eHostRead )
10175         | VkFlags( AccessFlagBits::eHostWrite )
10176         | VkFlags( AccessFlagBits::eMemoryRead )
10177         | VkFlags( AccessFlagBits::eMemoryWrite )
10178         | VkFlags( AccessFlagBits::eTransformFeedbackWriteEXT )
10179         | VkFlags( AccessFlagBits::eTransformFeedbackCounterReadEXT )
10180         | VkFlags( AccessFlagBits::eTransformFeedbackCounterWriteEXT )
10181         | VkFlags( AccessFlagBits::eConditionalRenderingReadEXT )
10182         | VkFlags( AccessFlagBits::eColorAttachmentReadNoncoherentEXT )
10183         | VkFlags( AccessFlagBits::eAccelerationStructureReadKHR )
10184         | VkFlags( AccessFlagBits::eAccelerationStructureWriteKHR )
10185         | VkFlags( AccessFlagBits::eShadingRateImageReadNV )
10186         | VkFlags( AccessFlagBits::eFragmentDensityMapReadEXT )
10187         | VkFlags( AccessFlagBits::eCommandPreprocessReadNV )
10188         | VkFlags( AccessFlagBits::eCommandPreprocessWriteNV )
10189         | VkFlags( AccessFlagBits::eNoneKHR )
10190     };
10191   };
10192 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)10193   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10194   {
10195     return AccessFlags( bit0 ) | bit1;
10196   }
10197 
operator &(AccessFlagBits bit0,AccessFlagBits bit1)10198   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10199   {
10200     return AccessFlags( bit0 ) & bit1;
10201   }
10202 
operator ^(AccessFlagBits bit0,AccessFlagBits bit1)10203   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10204   {
10205     return AccessFlags( bit0 ) ^ bit1;
10206   }
10207 
operator ~(AccessFlagBits bits)10208   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT
10209   {
10210     return ~( AccessFlags( bits ) );
10211   }
10212 
to_string(AccessFlags value)10213   VULKAN_HPP_INLINE std::string to_string( AccessFlags value  )
10214   {
10215 
10216     if ( !value ) return "{}";
10217     std::string result;
10218 
10219     if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | ";
10220     if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | ";
10221     if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | ";
10222     if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | ";
10223     if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | ";
10224     if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | ";
10225     if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | ";
10226     if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | ";
10227     if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | ";
10228     if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | ";
10229     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | ";
10230     if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | ";
10231     if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | ";
10232     if ( value & AccessFlagBits::eHostRead ) result += "HostRead | ";
10233     if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | ";
10234     if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | ";
10235     if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | ";
10236     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | ";
10237     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | ";
10238     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | ";
10239     if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | ";
10240     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | ";
10241     if ( value & AccessFlagBits::eAccelerationStructureReadKHR ) result += "AccelerationStructureReadKHR | ";
10242     if ( value & AccessFlagBits::eAccelerationStructureWriteKHR ) result += "AccelerationStructureWriteKHR | ";
10243     if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | ";
10244     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | ";
10245     if ( value & AccessFlagBits::eCommandPreprocessReadNV ) result += "CommandPreprocessReadNV | ";
10246     if ( value & AccessFlagBits::eCommandPreprocessWriteNV ) result += "CommandPreprocessWriteNV | ";
10247     return "{ " + result.substr(0, result.size() - 3) + " }";
10248   }
10249 
10250 
10251   using AccessFlags2KHR = Flags<AccessFlagBits2KHR>;
10252 
10253   template <> struct FlagTraits<AccessFlagBits2KHR>
10254   {
10255     enum : VkFlags64
10256     {
10257       allFlags =
10258           VkFlags64( AccessFlagBits2KHR::e2None )
10259         | VkFlags64( AccessFlagBits2KHR::e2IndirectCommandRead )
10260         | VkFlags64( AccessFlagBits2KHR::e2IndexRead )
10261         | VkFlags64( AccessFlagBits2KHR::e2VertexAttributeRead )
10262         | VkFlags64( AccessFlagBits2KHR::e2UniformRead )
10263         | VkFlags64( AccessFlagBits2KHR::e2InputAttachmentRead )
10264         | VkFlags64( AccessFlagBits2KHR::e2ShaderRead )
10265         | VkFlags64( AccessFlagBits2KHR::e2ShaderWrite )
10266         | VkFlags64( AccessFlagBits2KHR::e2ColorAttachmentRead )
10267         | VkFlags64( AccessFlagBits2KHR::e2ColorAttachmentWrite )
10268         | VkFlags64( AccessFlagBits2KHR::e2DepthStencilAttachmentRead )
10269         | VkFlags64( AccessFlagBits2KHR::e2DepthStencilAttachmentWrite )
10270         | VkFlags64( AccessFlagBits2KHR::e2TransferRead )
10271         | VkFlags64( AccessFlagBits2KHR::e2TransferWrite )
10272         | VkFlags64( AccessFlagBits2KHR::e2HostRead )
10273         | VkFlags64( AccessFlagBits2KHR::e2HostWrite )
10274         | VkFlags64( AccessFlagBits2KHR::e2MemoryRead )
10275         | VkFlags64( AccessFlagBits2KHR::e2MemoryWrite )
10276         | VkFlags64( AccessFlagBits2KHR::e2ShaderSampledRead )
10277         | VkFlags64( AccessFlagBits2KHR::e2ShaderStorageRead )
10278         | VkFlags64( AccessFlagBits2KHR::e2ShaderStorageWrite )
10279         | VkFlags64( AccessFlagBits2KHR::e2TransformFeedbackWriteExt )
10280         | VkFlags64( AccessFlagBits2KHR::e2TransformFeedbackCounterReadExt )
10281         | VkFlags64( AccessFlagBits2KHR::e2TransformFeedbackCounterWriteExt )
10282         | VkFlags64( AccessFlagBits2KHR::e2ConditionalRenderingReadExt )
10283         | VkFlags64( AccessFlagBits2KHR::e2CommandPreprocessReadNv )
10284         | VkFlags64( AccessFlagBits2KHR::e2CommandPreprocessWriteNv )
10285         | VkFlags64( AccessFlagBits2KHR::e2FragmentShadingRateAttachmentRead )
10286         | VkFlags64( AccessFlagBits2KHR::e2AccelerationStructureRead )
10287         | VkFlags64( AccessFlagBits2KHR::e2AccelerationStructureWrite )
10288         | VkFlags64( AccessFlagBits2KHR::e2FragmentDensityMapReadExt )
10289         | VkFlags64( AccessFlagBits2KHR::e2ColorAttachmentReadNoncoherentExt )
10290     };
10291   };
10292 
operator |(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)10293   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator|( AccessFlagBits2KHR bit0, AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
10294   {
10295     return AccessFlags2KHR( bit0 ) | bit1;
10296   }
10297 
operator &(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)10298   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator&( AccessFlagBits2KHR bit0, AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
10299   {
10300     return AccessFlags2KHR( bit0 ) & bit1;
10301   }
10302 
operator ^(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)10303   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator^( AccessFlagBits2KHR bit0, AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
10304   {
10305     return AccessFlags2KHR( bit0 ) ^ bit1;
10306   }
10307 
operator ~(AccessFlagBits2KHR bits)10308   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator~( AccessFlagBits2KHR bits ) VULKAN_HPP_NOEXCEPT
10309   {
10310     return ~( AccessFlags2KHR( bits ) );
10311   }
10312 
to_string(AccessFlags2KHR value)10313   VULKAN_HPP_INLINE std::string to_string( AccessFlags2KHR value  )
10314   {
10315 
10316     if ( !value ) return "{}";
10317     std::string result;
10318 
10319     if ( value & AccessFlagBits2KHR::e2IndirectCommandRead ) result += "2IndirectCommandRead | ";
10320     if ( value & AccessFlagBits2KHR::e2IndexRead ) result += "2IndexRead | ";
10321     if ( value & AccessFlagBits2KHR::e2VertexAttributeRead ) result += "2VertexAttributeRead | ";
10322     if ( value & AccessFlagBits2KHR::e2UniformRead ) result += "2UniformRead | ";
10323     if ( value & AccessFlagBits2KHR::e2InputAttachmentRead ) result += "2InputAttachmentRead | ";
10324     if ( value & AccessFlagBits2KHR::e2ShaderRead ) result += "2ShaderRead | ";
10325     if ( value & AccessFlagBits2KHR::e2ShaderWrite ) result += "2ShaderWrite | ";
10326     if ( value & AccessFlagBits2KHR::e2ColorAttachmentRead ) result += "2ColorAttachmentRead | ";
10327     if ( value & AccessFlagBits2KHR::e2ColorAttachmentWrite ) result += "2ColorAttachmentWrite | ";
10328     if ( value & AccessFlagBits2KHR::e2DepthStencilAttachmentRead ) result += "2DepthStencilAttachmentRead | ";
10329     if ( value & AccessFlagBits2KHR::e2DepthStencilAttachmentWrite ) result += "2DepthStencilAttachmentWrite | ";
10330     if ( value & AccessFlagBits2KHR::e2TransferRead ) result += "2TransferRead | ";
10331     if ( value & AccessFlagBits2KHR::e2TransferWrite ) result += "2TransferWrite | ";
10332     if ( value & AccessFlagBits2KHR::e2HostRead ) result += "2HostRead | ";
10333     if ( value & AccessFlagBits2KHR::e2HostWrite ) result += "2HostWrite | ";
10334     if ( value & AccessFlagBits2KHR::e2MemoryRead ) result += "2MemoryRead | ";
10335     if ( value & AccessFlagBits2KHR::e2MemoryWrite ) result += "2MemoryWrite | ";
10336     if ( value & AccessFlagBits2KHR::e2ShaderSampledRead ) result += "2ShaderSampledRead | ";
10337     if ( value & AccessFlagBits2KHR::e2ShaderStorageRead ) result += "2ShaderStorageRead | ";
10338     if ( value & AccessFlagBits2KHR::e2ShaderStorageWrite ) result += "2ShaderStorageWrite | ";
10339     if ( value & AccessFlagBits2KHR::e2TransformFeedbackWriteExt ) result += "2TransformFeedbackWriteExt | ";
10340     if ( value & AccessFlagBits2KHR::e2TransformFeedbackCounterReadExt ) result += "2TransformFeedbackCounterReadExt | ";
10341     if ( value & AccessFlagBits2KHR::e2TransformFeedbackCounterWriteExt ) result += "2TransformFeedbackCounterWriteExt | ";
10342     if ( value & AccessFlagBits2KHR::e2ConditionalRenderingReadExt ) result += "2ConditionalRenderingReadExt | ";
10343     if ( value & AccessFlagBits2KHR::e2CommandPreprocessReadNv ) result += "2CommandPreprocessReadNv | ";
10344     if ( value & AccessFlagBits2KHR::e2CommandPreprocessWriteNv ) result += "2CommandPreprocessWriteNv | ";
10345     if ( value & AccessFlagBits2KHR::e2FragmentShadingRateAttachmentRead ) result += "2FragmentShadingRateAttachmentRead | ";
10346     if ( value & AccessFlagBits2KHR::e2AccelerationStructureRead ) result += "2AccelerationStructureRead | ";
10347     if ( value & AccessFlagBits2KHR::e2AccelerationStructureWrite ) result += "2AccelerationStructureWrite | ";
10348     if ( value & AccessFlagBits2KHR::e2FragmentDensityMapReadExt ) result += "2FragmentDensityMapReadExt | ";
10349     if ( value & AccessFlagBits2KHR::e2ColorAttachmentReadNoncoherentExt ) result += "2ColorAttachmentReadNoncoherentExt | ";
10350     return "{ " + result.substr(0, result.size() - 3) + " }";
10351   }
10352 
10353 
10354   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
10355 
to_string(AcquireProfilingLockFlagsKHR)10356   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR  )
10357   {
10358 
10359     return "{}";
10360   }
10361 
10362 #ifdef VK_USE_PLATFORM_ANDROID_KHR
10363   enum class AndroidSurfaceCreateFlagBitsKHR : VkFlags
10364   {};
10365 
to_string(AndroidSurfaceCreateFlagBitsKHR)10366   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
10367   {
10368     return "(void)";
10369   }
10370 
10371   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
10372 
to_string(AndroidSurfaceCreateFlagsKHR)10373   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR  )
10374   {
10375 
10376     return "{}";
10377   }
10378 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
10379 
10380 
10381   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
10382 
10383   template <> struct FlagTraits<AttachmentDescriptionFlagBits>
10384   {
10385     enum : VkFlags
10386     {
10387       allFlags =
10388           VkFlags( AttachmentDescriptionFlagBits::eMayAlias )
10389     };
10390   };
10391 
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10392   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10393   {
10394     return AttachmentDescriptionFlags( bit0 ) | bit1;
10395   }
10396 
operator &(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10397   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10398   {
10399     return AttachmentDescriptionFlags( bit0 ) & bit1;
10400   }
10401 
operator ^(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10402   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10403   {
10404     return AttachmentDescriptionFlags( bit0 ) ^ bit1;
10405   }
10406 
operator ~(AttachmentDescriptionFlagBits bits)10407   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
10408   {
10409     return ~( AttachmentDescriptionFlags( bits ) );
10410   }
10411 
to_string(AttachmentDescriptionFlags value)10412   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value  )
10413   {
10414 
10415     if ( !value ) return "{}";
10416     std::string result;
10417 
10418     if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | ";
10419     return "{ " + result.substr(0, result.size() - 3) + " }";
10420   }
10421 
10422 
10423   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
10424 
10425   template <> struct FlagTraits<BufferCreateFlagBits>
10426   {
10427     enum : VkFlags
10428     {
10429       allFlags =
10430           VkFlags( BufferCreateFlagBits::eSparseBinding )
10431         | VkFlags( BufferCreateFlagBits::eSparseResidency )
10432         | VkFlags( BufferCreateFlagBits::eSparseAliased )
10433         | VkFlags( BufferCreateFlagBits::eProtected )
10434         | VkFlags( BufferCreateFlagBits::eDeviceAddressCaptureReplay )
10435     };
10436   };
10437 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)10438   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10439   {
10440     return BufferCreateFlags( bit0 ) | bit1;
10441   }
10442 
operator &(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)10443   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10444   {
10445     return BufferCreateFlags( bit0 ) & bit1;
10446   }
10447 
operator ^(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)10448   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10449   {
10450     return BufferCreateFlags( bit0 ) ^ bit1;
10451   }
10452 
operator ~(BufferCreateFlagBits bits)10453   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10454   {
10455     return ~( BufferCreateFlags( bits ) );
10456   }
10457 
to_string(BufferCreateFlags value)10458   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value  )
10459   {
10460 
10461     if ( !value ) return "{}";
10462     std::string result;
10463 
10464     if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
10465     if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
10466     if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
10467     if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | ";
10468     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
10469     return "{ " + result.substr(0, result.size() - 3) + " }";
10470   }
10471 
10472 
10473   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
10474 
10475   template <> struct FlagTraits<BufferUsageFlagBits>
10476   {
10477     enum : VkFlags
10478     {
10479       allFlags =
10480           VkFlags( BufferUsageFlagBits::eTransferSrc )
10481         | VkFlags( BufferUsageFlagBits::eTransferDst )
10482         | VkFlags( BufferUsageFlagBits::eUniformTexelBuffer )
10483         | VkFlags( BufferUsageFlagBits::eStorageTexelBuffer )
10484         | VkFlags( BufferUsageFlagBits::eUniformBuffer )
10485         | VkFlags( BufferUsageFlagBits::eStorageBuffer )
10486         | VkFlags( BufferUsageFlagBits::eIndexBuffer )
10487         | VkFlags( BufferUsageFlagBits::eVertexBuffer )
10488         | VkFlags( BufferUsageFlagBits::eIndirectBuffer )
10489         | VkFlags( BufferUsageFlagBits::eShaderDeviceAddress )
10490         | VkFlags( BufferUsageFlagBits::eTransformFeedbackBufferEXT )
10491         | VkFlags( BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT )
10492         | VkFlags( BufferUsageFlagBits::eConditionalRenderingEXT )
10493         | VkFlags( BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR )
10494         | VkFlags( BufferUsageFlagBits::eAccelerationStructureStorageKHR )
10495         | VkFlags( BufferUsageFlagBits::eShaderBindingTableKHR )
10496     };
10497   };
10498 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)10499   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10500   {
10501     return BufferUsageFlags( bit0 ) | bit1;
10502   }
10503 
operator &(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)10504   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10505   {
10506     return BufferUsageFlags( bit0 ) & bit1;
10507   }
10508 
operator ^(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)10509   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10510   {
10511     return BufferUsageFlags( bit0 ) ^ bit1;
10512   }
10513 
operator ~(BufferUsageFlagBits bits)10514   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
10515   {
10516     return ~( BufferUsageFlags( bits ) );
10517   }
10518 
to_string(BufferUsageFlags value)10519   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value  )
10520   {
10521 
10522     if ( !value ) return "{}";
10523     std::string result;
10524 
10525     if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
10526     if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | ";
10527     if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
10528     if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
10529     if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | ";
10530     if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | ";
10531     if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | ";
10532     if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
10533     if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | ";
10534     if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) result += "ShaderDeviceAddress | ";
10535     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | ";
10536     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | ";
10537     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
10538     if ( value & BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) result += "AccelerationStructureBuildInputReadOnlyKHR | ";
10539     if ( value & BufferUsageFlagBits::eAccelerationStructureStorageKHR ) result += "AccelerationStructureStorageKHR | ";
10540     if ( value & BufferUsageFlagBits::eShaderBindingTableKHR ) result += "ShaderBindingTableKHR | ";
10541     return "{ " + result.substr(0, result.size() - 3) + " }";
10542   }
10543 
10544   enum class BufferViewCreateFlagBits : VkFlags
10545   {};
10546 
to_string(BufferViewCreateFlagBits)10547   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
10548   {
10549     return "(void)";
10550   }
10551 
10552   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
10553 
to_string(BufferViewCreateFlags)10554   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags  )
10555   {
10556 
10557     return "{}";
10558   }
10559 
10560 
10561   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
10562 
10563   template <> struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
10564   {
10565     enum : VkFlags
10566     {
10567       allFlags =
10568           VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowUpdate )
10569         | VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowCompaction )
10570         | VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace )
10571         | VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild )
10572         | VkFlags( BuildAccelerationStructureFlagBitsKHR::eLowMemory )
10573     };
10574   };
10575 
operator |(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)10576   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10577   {
10578     return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1;
10579   }
10580 
operator &(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)10581   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10582   {
10583     return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1;
10584   }
10585 
operator ^(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)10586   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10587   {
10588     return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1;
10589   }
10590 
operator ~(BuildAccelerationStructureFlagBitsKHR bits)10591   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10592   {
10593     return ~( BuildAccelerationStructureFlagsKHR( bits ) );
10594   }
10595 
10596   using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
10597 
to_string(BuildAccelerationStructureFlagsKHR value)10598   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value  )
10599   {
10600 
10601     if ( !value ) return "{}";
10602     std::string result;
10603 
10604     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) result += "AllowUpdate | ";
10605     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) result += "AllowCompaction | ";
10606     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) result += "PreferFastTrace | ";
10607     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) result += "PreferFastBuild | ";
10608     if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory ) result += "LowMemory | ";
10609     return "{ " + result.substr(0, result.size() - 3) + " }";
10610   }
10611 
10612 
10613   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
10614 
10615   template <> struct FlagTraits<ColorComponentFlagBits>
10616   {
10617     enum : VkFlags
10618     {
10619       allFlags =
10620           VkFlags( ColorComponentFlagBits::eR )
10621         | VkFlags( ColorComponentFlagBits::eG )
10622         | VkFlags( ColorComponentFlagBits::eB )
10623         | VkFlags( ColorComponentFlagBits::eA )
10624     };
10625   };
10626 
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)10627   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10628   {
10629     return ColorComponentFlags( bit0 ) | bit1;
10630   }
10631 
operator &(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)10632   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10633   {
10634     return ColorComponentFlags( bit0 ) & bit1;
10635   }
10636 
operator ^(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)10637   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10638   {
10639     return ColorComponentFlags( bit0 ) ^ bit1;
10640   }
10641 
operator ~(ColorComponentFlagBits bits)10642   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) VULKAN_HPP_NOEXCEPT
10643   {
10644     return ~( ColorComponentFlags( bits ) );
10645   }
10646 
to_string(ColorComponentFlags value)10647   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value  )
10648   {
10649 
10650     if ( !value ) return "{}";
10651     std::string result;
10652 
10653     if ( value & ColorComponentFlagBits::eR ) result += "R | ";
10654     if ( value & ColorComponentFlagBits::eG ) result += "G | ";
10655     if ( value & ColorComponentFlagBits::eB ) result += "B | ";
10656     if ( value & ColorComponentFlagBits::eA ) result += "A | ";
10657     return "{ " + result.substr(0, result.size() - 3) + " }";
10658   }
10659 
10660 
10661   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
10662 
10663   template <> struct FlagTraits<CommandBufferResetFlagBits>
10664   {
10665     enum : VkFlags
10666     {
10667       allFlags =
10668           VkFlags( CommandBufferResetFlagBits::eReleaseResources )
10669     };
10670   };
10671 
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10672   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10673   {
10674     return CommandBufferResetFlags( bit0 ) | bit1;
10675   }
10676 
operator &(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10677   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10678   {
10679     return CommandBufferResetFlags( bit0 ) & bit1;
10680   }
10681 
operator ^(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10682   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10683   {
10684     return CommandBufferResetFlags( bit0 ) ^ bit1;
10685   }
10686 
operator ~(CommandBufferResetFlagBits bits)10687   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
10688   {
10689     return ~( CommandBufferResetFlags( bits ) );
10690   }
10691 
to_string(CommandBufferResetFlags value)10692   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value  )
10693   {
10694 
10695     if ( !value ) return "{}";
10696     std::string result;
10697 
10698     if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
10699     return "{ " + result.substr(0, result.size() - 3) + " }";
10700   }
10701 
10702 
10703   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
10704 
10705   template <> struct FlagTraits<CommandBufferUsageFlagBits>
10706   {
10707     enum : VkFlags
10708     {
10709       allFlags =
10710           VkFlags( CommandBufferUsageFlagBits::eOneTimeSubmit )
10711         | VkFlags( CommandBufferUsageFlagBits::eRenderPassContinue )
10712         | VkFlags( CommandBufferUsageFlagBits::eSimultaneousUse )
10713     };
10714   };
10715 
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10716   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10717   {
10718     return CommandBufferUsageFlags( bit0 ) | bit1;
10719   }
10720 
operator &(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10721   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10722   {
10723     return CommandBufferUsageFlags( bit0 ) & bit1;
10724   }
10725 
operator ^(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10726   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10727   {
10728     return CommandBufferUsageFlags( bit0 ) ^ bit1;
10729   }
10730 
operator ~(CommandBufferUsageFlagBits bits)10731   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
10732   {
10733     return ~( CommandBufferUsageFlags( bits ) );
10734   }
10735 
to_string(CommandBufferUsageFlags value)10736   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value  )
10737   {
10738 
10739     if ( !value ) return "{}";
10740     std::string result;
10741 
10742     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | ";
10743     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | ";
10744     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | ";
10745     return "{ " + result.substr(0, result.size() - 3) + " }";
10746   }
10747 
10748 
10749   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
10750 
10751   template <> struct FlagTraits<CommandPoolCreateFlagBits>
10752   {
10753     enum : VkFlags
10754     {
10755       allFlags =
10756           VkFlags( CommandPoolCreateFlagBits::eTransient )
10757         | VkFlags( CommandPoolCreateFlagBits::eResetCommandBuffer )
10758         | VkFlags( CommandPoolCreateFlagBits::eProtected )
10759     };
10760   };
10761 
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10762   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10763   {
10764     return CommandPoolCreateFlags( bit0 ) | bit1;
10765   }
10766 
operator &(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10767   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10768   {
10769     return CommandPoolCreateFlags( bit0 ) & bit1;
10770   }
10771 
operator ^(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10772   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10773   {
10774     return CommandPoolCreateFlags( bit0 ) ^ bit1;
10775   }
10776 
operator ~(CommandPoolCreateFlagBits bits)10777   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10778   {
10779     return ~( CommandPoolCreateFlags( bits ) );
10780   }
10781 
to_string(CommandPoolCreateFlags value)10782   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value  )
10783   {
10784 
10785     if ( !value ) return "{}";
10786     std::string result;
10787 
10788     if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | ";
10789     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | ";
10790     if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | ";
10791     return "{ " + result.substr(0, result.size() - 3) + " }";
10792   }
10793 
10794 
10795   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
10796 
10797   template <> struct FlagTraits<CommandPoolResetFlagBits>
10798   {
10799     enum : VkFlags
10800     {
10801       allFlags =
10802           VkFlags( CommandPoolResetFlagBits::eReleaseResources )
10803     };
10804   };
10805 
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10806   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10807   {
10808     return CommandPoolResetFlags( bit0 ) | bit1;
10809   }
10810 
operator &(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10811   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10812   {
10813     return CommandPoolResetFlags( bit0 ) & bit1;
10814   }
10815 
operator ^(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10816   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10817   {
10818     return CommandPoolResetFlags( bit0 ) ^ bit1;
10819   }
10820 
operator ~(CommandPoolResetFlagBits bits)10821   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
10822   {
10823     return ~( CommandPoolResetFlags( bits ) );
10824   }
10825 
to_string(CommandPoolResetFlags value)10826   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value  )
10827   {
10828 
10829     if ( !value ) return "{}";
10830     std::string result;
10831 
10832     if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
10833     return "{ " + result.substr(0, result.size() - 3) + " }";
10834   }
10835 
10836   enum class CommandPoolTrimFlagBits : VkFlags
10837   {};
10838 
to_string(CommandPoolTrimFlagBits)10839   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
10840   {
10841     return "(void)";
10842   }
10843 
10844   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits>;
10845 
10846   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
10847 
to_string(CommandPoolTrimFlags)10848   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags  )
10849   {
10850 
10851     return "{}";
10852   }
10853 
10854 
10855   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
10856 
10857   template <> struct FlagTraits<CompositeAlphaFlagBitsKHR>
10858   {
10859     enum : VkFlags
10860     {
10861       allFlags =
10862           VkFlags( CompositeAlphaFlagBitsKHR::eOpaque )
10863         | VkFlags( CompositeAlphaFlagBitsKHR::ePreMultiplied )
10864         | VkFlags( CompositeAlphaFlagBitsKHR::ePostMultiplied )
10865         | VkFlags( CompositeAlphaFlagBitsKHR::eInherit )
10866     };
10867   };
10868 
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10869   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10870   {
10871     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
10872   }
10873 
operator &(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10874   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10875   {
10876     return CompositeAlphaFlagsKHR( bit0 ) & bit1;
10877   }
10878 
operator ^(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10879   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10880   {
10881     return CompositeAlphaFlagsKHR( bit0 ) ^ bit1;
10882   }
10883 
operator ~(CompositeAlphaFlagBitsKHR bits)10884   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10885   {
10886     return ~( CompositeAlphaFlagsKHR( bits ) );
10887   }
10888 
to_string(CompositeAlphaFlagsKHR value)10889   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value  )
10890   {
10891 
10892     if ( !value ) return "{}";
10893     std::string result;
10894 
10895     if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
10896     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | ";
10897     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | ";
10898     if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | ";
10899     return "{ " + result.substr(0, result.size() - 3) + " }";
10900   }
10901 
10902 
10903   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
10904 
10905   template <> struct FlagTraits<ConditionalRenderingFlagBitsEXT>
10906   {
10907     enum : VkFlags
10908     {
10909       allFlags =
10910           VkFlags( ConditionalRenderingFlagBitsEXT::eInverted )
10911     };
10912   };
10913 
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10914   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10915   {
10916     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
10917   }
10918 
operator &(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10919   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10920   {
10921     return ConditionalRenderingFlagsEXT( bit0 ) & bit1;
10922   }
10923 
operator ^(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10924   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10925   {
10926     return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1;
10927   }
10928 
operator ~(ConditionalRenderingFlagBitsEXT bits)10929   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10930   {
10931     return ~( ConditionalRenderingFlagsEXT( bits ) );
10932   }
10933 
to_string(ConditionalRenderingFlagsEXT value)10934   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value  )
10935   {
10936 
10937     if ( !value ) return "{}";
10938     std::string result;
10939 
10940     if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | ";
10941     return "{ " + result.substr(0, result.size() - 3) + " }";
10942   }
10943 
10944 
10945   using CullModeFlags = Flags<CullModeFlagBits>;
10946 
10947   template <> struct FlagTraits<CullModeFlagBits>
10948   {
10949     enum : VkFlags
10950     {
10951       allFlags =
10952           VkFlags( CullModeFlagBits::eNone )
10953         | VkFlags( CullModeFlagBits::eFront )
10954         | VkFlags( CullModeFlagBits::eBack )
10955         | VkFlags( CullModeFlagBits::eFrontAndBack )
10956     };
10957   };
10958 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)10959   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10960   {
10961     return CullModeFlags( bit0 ) | bit1;
10962   }
10963 
operator &(CullModeFlagBits bit0,CullModeFlagBits bit1)10964   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10965   {
10966     return CullModeFlags( bit0 ) & bit1;
10967   }
10968 
operator ^(CullModeFlagBits bit0,CullModeFlagBits bit1)10969   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10970   {
10971     return CullModeFlags( bit0 ) ^ bit1;
10972   }
10973 
operator ~(CullModeFlagBits bits)10974   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10975   {
10976     return ~( CullModeFlags( bits ) );
10977   }
10978 
to_string(CullModeFlags value)10979   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value  )
10980   {
10981 
10982     if ( !value ) return "{}";
10983     std::string result;
10984 
10985     if ( value & CullModeFlagBits::eFront ) result += "Front | ";
10986     if ( value & CullModeFlagBits::eBack ) result += "Back | ";
10987     return "{ " + result.substr(0, result.size() - 3) + " }";
10988   }
10989 
10990 
10991   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
10992 
10993   template <> struct FlagTraits<DebugReportFlagBitsEXT>
10994   {
10995     enum : VkFlags
10996     {
10997       allFlags =
10998           VkFlags( DebugReportFlagBitsEXT::eInformation )
10999         | VkFlags( DebugReportFlagBitsEXT::eWarning )
11000         | VkFlags( DebugReportFlagBitsEXT::ePerformanceWarning )
11001         | VkFlags( DebugReportFlagBitsEXT::eError )
11002         | VkFlags( DebugReportFlagBitsEXT::eDebug )
11003     };
11004   };
11005 
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)11006   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11007   {
11008     return DebugReportFlagsEXT( bit0 ) | bit1;
11009   }
11010 
operator &(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)11011   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11012   {
11013     return DebugReportFlagsEXT( bit0 ) & bit1;
11014   }
11015 
operator ^(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)11016   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11017   {
11018     return DebugReportFlagsEXT( bit0 ) ^ bit1;
11019   }
11020 
operator ~(DebugReportFlagBitsEXT bits)11021   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
11022   {
11023     return ~( DebugReportFlagsEXT( bits ) );
11024   }
11025 
to_string(DebugReportFlagsEXT value)11026   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value  )
11027   {
11028 
11029     if ( !value ) return "{}";
11030     std::string result;
11031 
11032     if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | ";
11033     if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | ";
11034     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | ";
11035     if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | ";
11036     if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | ";
11037     return "{ " + result.substr(0, result.size() - 3) + " }";
11038   }
11039 
11040 
11041   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
11042 
11043   template <> struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
11044   {
11045     enum : VkFlags
11046     {
11047       allFlags =
11048           VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eVerbose )
11049         | VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eInfo )
11050         | VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eWarning )
11051         | VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eError )
11052     };
11053   };
11054 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)11055   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11056   {
11057     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
11058   }
11059 
operator &(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)11060   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11061   {
11062     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1;
11063   }
11064 
operator ^(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)11065   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11066   {
11067     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1;
11068   }
11069 
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)11070   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
11071   {
11072     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
11073   }
11074 
to_string(DebugUtilsMessageSeverityFlagsEXT value)11075   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value  )
11076   {
11077 
11078     if ( !value ) return "{}";
11079     std::string result;
11080 
11081     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | ";
11082     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | ";
11083     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | ";
11084     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | ";
11085     return "{ " + result.substr(0, result.size() - 3) + " }";
11086   }
11087 
11088 
11089   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
11090 
11091   template <> struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
11092   {
11093     enum : VkFlags
11094     {
11095       allFlags =
11096           VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eGeneral )
11097         | VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eValidation )
11098         | VkFlags( DebugUtilsMessageTypeFlagBitsEXT::ePerformance )
11099     };
11100   };
11101 
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)11102   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11103   {
11104     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
11105   }
11106 
operator &(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)11107   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11108   {
11109     return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1;
11110   }
11111 
operator ^(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)11112   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11113   {
11114     return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1;
11115   }
11116 
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)11117   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
11118   {
11119     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
11120   }
11121 
to_string(DebugUtilsMessageTypeFlagsEXT value)11122   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value  )
11123   {
11124 
11125     if ( !value ) return "{}";
11126     std::string result;
11127 
11128     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | ";
11129     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | ";
11130     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | ";
11131     return "{ " + result.substr(0, result.size() - 3) + " }";
11132   }
11133 
11134   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkFlags
11135   {};
11136 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)11137   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
11138   {
11139     return "(void)";
11140   }
11141 
11142   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
11143 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)11144   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT  )
11145   {
11146 
11147     return "{}";
11148   }
11149 
11150   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkFlags
11151   {};
11152 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)11153   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
11154   {
11155     return "(void)";
11156   }
11157 
11158   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
11159 
to_string(DebugUtilsMessengerCreateFlagsEXT)11160   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT  )
11161   {
11162 
11163     return "{}";
11164   }
11165 
11166 
11167   using DependencyFlags = Flags<DependencyFlagBits>;
11168 
11169   template <> struct FlagTraits<DependencyFlagBits>
11170   {
11171     enum : VkFlags
11172     {
11173       allFlags =
11174           VkFlags( DependencyFlagBits::eByRegion )
11175         | VkFlags( DependencyFlagBits::eDeviceGroup )
11176         | VkFlags( DependencyFlagBits::eViewLocal )
11177     };
11178   };
11179 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)11180   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11181   {
11182     return DependencyFlags( bit0 ) | bit1;
11183   }
11184 
operator &(DependencyFlagBits bit0,DependencyFlagBits bit1)11185   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11186   {
11187     return DependencyFlags( bit0 ) & bit1;
11188   }
11189 
operator ^(DependencyFlagBits bit0,DependencyFlagBits bit1)11190   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11191   {
11192     return DependencyFlags( bit0 ) ^ bit1;
11193   }
11194 
operator ~(DependencyFlagBits bits)11195   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT
11196   {
11197     return ~( DependencyFlags( bits ) );
11198   }
11199 
to_string(DependencyFlags value)11200   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value  )
11201   {
11202 
11203     if ( !value ) return "{}";
11204     std::string result;
11205 
11206     if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | ";
11207     if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | ";
11208     if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | ";
11209     return "{ " + result.substr(0, result.size() - 3) + " }";
11210   }
11211 
11212 
11213   using DescriptorBindingFlags = Flags<DescriptorBindingFlagBits>;
11214 
11215   template <> struct FlagTraits<DescriptorBindingFlagBits>
11216   {
11217     enum : VkFlags
11218     {
11219       allFlags =
11220           VkFlags( DescriptorBindingFlagBits::eUpdateAfterBind )
11221         | VkFlags( DescriptorBindingFlagBits::eUpdateUnusedWhilePending )
11222         | VkFlags( DescriptorBindingFlagBits::ePartiallyBound )
11223         | VkFlags( DescriptorBindingFlagBits::eVariableDescriptorCount )
11224     };
11225   };
11226 
operator |(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11227   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11228   {
11229     return DescriptorBindingFlags( bit0 ) | bit1;
11230   }
11231 
operator &(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11232   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11233   {
11234     return DescriptorBindingFlags( bit0 ) & bit1;
11235   }
11236 
operator ^(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11237   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11238   {
11239     return DescriptorBindingFlags( bit0 ) ^ bit1;
11240   }
11241 
operator ~(DescriptorBindingFlagBits bits)11242   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) VULKAN_HPP_NOEXCEPT
11243   {
11244     return ~( DescriptorBindingFlags( bits ) );
11245   }
11246 
11247   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
11248 
to_string(DescriptorBindingFlags value)11249   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value  )
11250   {
11251 
11252     if ( !value ) return "{}";
11253     std::string result;
11254 
11255     if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
11256     if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | ";
11257     if ( value & DescriptorBindingFlagBits::ePartiallyBound ) result += "PartiallyBound | ";
11258     if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) result += "VariableDescriptorCount | ";
11259     return "{ " + result.substr(0, result.size() - 3) + " }";
11260   }
11261 
11262 
11263   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
11264 
11265   template <> struct FlagTraits<DescriptorPoolCreateFlagBits>
11266   {
11267     enum : VkFlags
11268     {
11269       allFlags =
11270           VkFlags( DescriptorPoolCreateFlagBits::eFreeDescriptorSet )
11271         | VkFlags( DescriptorPoolCreateFlagBits::eUpdateAfterBind )
11272         | VkFlags( DescriptorPoolCreateFlagBits::eHostOnlyVALVE )
11273     };
11274   };
11275 
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)11276   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11277   {
11278     return DescriptorPoolCreateFlags( bit0 ) | bit1;
11279   }
11280 
operator &(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)11281   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11282   {
11283     return DescriptorPoolCreateFlags( bit0 ) & bit1;
11284   }
11285 
operator ^(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)11286   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11287   {
11288     return DescriptorPoolCreateFlags( bit0 ) ^ bit1;
11289   }
11290 
operator ~(DescriptorPoolCreateFlagBits bits)11291   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11292   {
11293     return ~( DescriptorPoolCreateFlags( bits ) );
11294   }
11295 
to_string(DescriptorPoolCreateFlags value)11296   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value  )
11297   {
11298 
11299     if ( !value ) return "{}";
11300     std::string result;
11301 
11302     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | ";
11303     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
11304     if ( value & DescriptorPoolCreateFlagBits::eHostOnlyVALVE ) result += "HostOnlyVALVE | ";
11305     return "{ " + result.substr(0, result.size() - 3) + " }";
11306   }
11307 
11308   enum class DescriptorPoolResetFlagBits : VkFlags
11309   {};
11310 
to_string(DescriptorPoolResetFlagBits)11311   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
11312   {
11313     return "(void)";
11314   }
11315 
11316   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
11317 
to_string(DescriptorPoolResetFlags)11318   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags  )
11319   {
11320 
11321     return "{}";
11322   }
11323 
11324 
11325   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
11326 
11327   template <> struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
11328   {
11329     enum : VkFlags
11330     {
11331       allFlags =
11332           VkFlags( DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool )
11333         | VkFlags( DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR )
11334         | VkFlags( DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE )
11335     };
11336   };
11337 
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)11338   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11339   {
11340     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
11341   }
11342 
operator &(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)11343   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11344   {
11345     return DescriptorSetLayoutCreateFlags( bit0 ) & bit1;
11346   }
11347 
operator ^(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)11348   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11349   {
11350     return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1;
11351   }
11352 
operator ~(DescriptorSetLayoutCreateFlagBits bits)11353   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11354   {
11355     return ~( DescriptorSetLayoutCreateFlags( bits ) );
11356   }
11357 
to_string(DescriptorSetLayoutCreateFlags value)11358   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value  )
11359   {
11360 
11361     if ( !value ) return "{}";
11362     std::string result;
11363 
11364     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) result += "UpdateAfterBindPool | ";
11365     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | ";
11366     if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE ) result += "HostOnlyPoolVALVE | ";
11367     return "{ " + result.substr(0, result.size() - 3) + " }";
11368   }
11369 
11370   enum class DescriptorUpdateTemplateCreateFlagBits : VkFlags
11371   {};
11372 
to_string(DescriptorUpdateTemplateCreateFlagBits)11373   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
11374   {
11375     return "(void)";
11376   }
11377 
11378   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits>;
11379 
11380   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
11381 
to_string(DescriptorUpdateTemplateCreateFlags)11382   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags  )
11383   {
11384 
11385     return "{}";
11386   }
11387 
11388 
11389   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
11390 
to_string(DeviceCreateFlags)11391   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags  )
11392   {
11393 
11394     return "{}";
11395   }
11396 
11397 
11398   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
11399 
11400   template <> struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
11401   {
11402     enum : VkFlags
11403     {
11404       allFlags =
11405           VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo )
11406         | VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking )
11407         | VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints )
11408     };
11409   };
11410 
operator |(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)11411   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11412   {
11413     return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1;
11414   }
11415 
operator &(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)11416   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11417   {
11418     return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1;
11419   }
11420 
operator ^(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)11421   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11422   {
11423     return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1;
11424   }
11425 
operator ~(DeviceDiagnosticsConfigFlagBitsNV bits)11426   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11427   {
11428     return ~( DeviceDiagnosticsConfigFlagsNV( bits ) );
11429   }
11430 
to_string(DeviceDiagnosticsConfigFlagsNV value)11431   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value  )
11432   {
11433 
11434     if ( !value ) return "{}";
11435     std::string result;
11436 
11437     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) result += "EnableShaderDebugInfo | ";
11438     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) result += "EnableResourceTracking | ";
11439     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) result += "EnableAutomaticCheckpoints | ";
11440     return "{ " + result.substr(0, result.size() - 3) + " }";
11441   }
11442 
11443 
11444   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
11445 
11446   template <> struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
11447   {
11448     enum : VkFlags
11449     {
11450       allFlags =
11451           VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocal )
11452         | VkFlags( DeviceGroupPresentModeFlagBitsKHR::eRemote )
11453         | VkFlags( DeviceGroupPresentModeFlagBitsKHR::eSum )
11454         | VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice )
11455     };
11456   };
11457 
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11458   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11459   {
11460     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
11461   }
11462 
operator &(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11463   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11464   {
11465     return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1;
11466   }
11467 
operator ^(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11468   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11469   {
11470     return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1;
11471   }
11472 
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)11473   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11474   {
11475     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
11476   }
11477 
to_string(DeviceGroupPresentModeFlagsKHR value)11478   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value  )
11479   {
11480 
11481     if ( !value ) return "{}";
11482     std::string result;
11483 
11484     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | ";
11485     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | ";
11486     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | ";
11487     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | ";
11488     return "{ " + result.substr(0, result.size() - 3) + " }";
11489   }
11490 
11491   enum class DeviceMemoryReportFlagBitsEXT : VkFlags
11492   {};
11493 
to_string(DeviceMemoryReportFlagBitsEXT)11494   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT )
11495   {
11496     return "(void)";
11497   }
11498 
11499   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
11500 
to_string(DeviceMemoryReportFlagsEXT)11501   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT  )
11502   {
11503 
11504     return "{}";
11505   }
11506 
11507 
11508   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
11509 
11510   template <> struct FlagTraits<DeviceQueueCreateFlagBits>
11511   {
11512     enum : VkFlags
11513     {
11514       allFlags =
11515           VkFlags( DeviceQueueCreateFlagBits::eProtected )
11516     };
11517   };
11518 
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)11519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11520   {
11521     return DeviceQueueCreateFlags( bit0 ) | bit1;
11522   }
11523 
operator &(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)11524   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11525   {
11526     return DeviceQueueCreateFlags( bit0 ) & bit1;
11527   }
11528 
operator ^(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)11529   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11530   {
11531     return DeviceQueueCreateFlags( bit0 ) ^ bit1;
11532   }
11533 
operator ~(DeviceQueueCreateFlagBits bits)11534   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11535   {
11536     return ~( DeviceQueueCreateFlags( bits ) );
11537   }
11538 
to_string(DeviceQueueCreateFlags value)11539   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value  )
11540   {
11541 
11542     if ( !value ) return "{}";
11543     std::string result;
11544 
11545     if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | ";
11546     return "{ " + result.substr(0, result.size() - 3) + " }";
11547   }
11548 
11549 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
11550   enum class DirectFBSurfaceCreateFlagBitsEXT : VkFlags
11551   {};
11552 
to_string(DirectFBSurfaceCreateFlagBitsEXT)11553   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT )
11554   {
11555     return "(void)";
11556   }
11557 
11558   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
11559 
to_string(DirectFBSurfaceCreateFlagsEXT)11560   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT  )
11561   {
11562 
11563     return "{}";
11564   }
11565 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
11566 
11567   enum class DisplayModeCreateFlagBitsKHR : VkFlags
11568   {};
11569 
to_string(DisplayModeCreateFlagBitsKHR)11570   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
11571   {
11572     return "(void)";
11573   }
11574 
11575   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
11576 
to_string(DisplayModeCreateFlagsKHR)11577   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR  )
11578   {
11579 
11580     return "{}";
11581   }
11582 
11583 
11584   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
11585 
11586   template <> struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
11587   {
11588     enum : VkFlags
11589     {
11590       allFlags =
11591           VkFlags( DisplayPlaneAlphaFlagBitsKHR::eOpaque )
11592         | VkFlags( DisplayPlaneAlphaFlagBitsKHR::eGlobal )
11593         | VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixel )
11594         | VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied )
11595     };
11596   };
11597 
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11598   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11599   {
11600     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
11601   }
11602 
operator &(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11603   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11604   {
11605     return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1;
11606   }
11607 
operator ^(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11608   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11609   {
11610     return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1;
11611   }
11612 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)11613   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11614   {
11615     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
11616   }
11617 
to_string(DisplayPlaneAlphaFlagsKHR value)11618   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value  )
11619   {
11620 
11621     if ( !value ) return "{}";
11622     std::string result;
11623 
11624     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
11625     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | ";
11626     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | ";
11627     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | ";
11628     return "{ " + result.substr(0, result.size() - 3) + " }";
11629   }
11630 
11631   enum class DisplaySurfaceCreateFlagBitsKHR : VkFlags
11632   {};
11633 
to_string(DisplaySurfaceCreateFlagBitsKHR)11634   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
11635   {
11636     return "(void)";
11637   }
11638 
11639   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
11640 
to_string(DisplaySurfaceCreateFlagsKHR)11641   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR  )
11642   {
11643 
11644     return "{}";
11645   }
11646 
11647 
11648   using EventCreateFlags = Flags<EventCreateFlagBits>;
11649 
11650   template <> struct FlagTraits<EventCreateFlagBits>
11651   {
11652     enum : VkFlags
11653     {
11654       allFlags =
11655           VkFlags( EventCreateFlagBits::eDeviceOnlyKHR )
11656     };
11657   };
11658 
operator |(EventCreateFlagBits bit0,EventCreateFlagBits bit1)11659   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator|( EventCreateFlagBits bit0, EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11660   {
11661     return EventCreateFlags( bit0 ) | bit1;
11662   }
11663 
operator &(EventCreateFlagBits bit0,EventCreateFlagBits bit1)11664   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator&( EventCreateFlagBits bit0, EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11665   {
11666     return EventCreateFlags( bit0 ) & bit1;
11667   }
11668 
operator ^(EventCreateFlagBits bit0,EventCreateFlagBits bit1)11669   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator^( EventCreateFlagBits bit0, EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11670   {
11671     return EventCreateFlags( bit0 ) ^ bit1;
11672   }
11673 
operator ~(EventCreateFlagBits bits)11674   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator~( EventCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11675   {
11676     return ~( EventCreateFlags( bits ) );
11677   }
11678 
to_string(EventCreateFlags value)11679   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags value  )
11680   {
11681 
11682     if ( !value ) return "{}";
11683     std::string result;
11684 
11685     if ( value & EventCreateFlagBits::eDeviceOnlyKHR ) result += "DeviceOnlyKHR | ";
11686     return "{ " + result.substr(0, result.size() - 3) + " }";
11687   }
11688 
11689 
11690   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits>;
11691 
11692   template <> struct FlagTraits<ExternalFenceFeatureFlagBits>
11693   {
11694     enum : VkFlags
11695     {
11696       allFlags =
11697           VkFlags( ExternalFenceFeatureFlagBits::eExportable )
11698         | VkFlags( ExternalFenceFeatureFlagBits::eImportable )
11699     };
11700   };
11701 
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11702   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11703   {
11704     return ExternalFenceFeatureFlags( bit0 ) | bit1;
11705   }
11706 
operator &(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11707   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11708   {
11709     return ExternalFenceFeatureFlags( bit0 ) & bit1;
11710   }
11711 
operator ^(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11712   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11713   {
11714     return ExternalFenceFeatureFlags( bit0 ) ^ bit1;
11715   }
11716 
operator ~(ExternalFenceFeatureFlagBits bits)11717   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11718   {
11719     return ~( ExternalFenceFeatureFlags( bits ) );
11720   }
11721 
11722   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
11723 
to_string(ExternalFenceFeatureFlags value)11724   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value  )
11725   {
11726 
11727     if ( !value ) return "{}";
11728     std::string result;
11729 
11730     if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | ";
11731     if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | ";
11732     return "{ " + result.substr(0, result.size() - 3) + " }";
11733   }
11734 
11735 
11736   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits>;
11737 
11738   template <> struct FlagTraits<ExternalFenceHandleTypeFlagBits>
11739   {
11740     enum : VkFlags
11741     {
11742       allFlags =
11743           VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueFd )
11744         | VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32 )
11745         | VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt )
11746         | VkFlags( ExternalFenceHandleTypeFlagBits::eSyncFd )
11747     };
11748   };
11749 
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11750   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11751   {
11752     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
11753   }
11754 
operator &(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11755   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11756   {
11757     return ExternalFenceHandleTypeFlags( bit0 ) & bit1;
11758   }
11759 
operator ^(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11760   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11761   {
11762     return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1;
11763   }
11764 
operator ~(ExternalFenceHandleTypeFlagBits bits)11765   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11766   {
11767     return ~( ExternalFenceHandleTypeFlags( bits ) );
11768   }
11769 
11770   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
11771 
to_string(ExternalFenceHandleTypeFlags value)11772   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value  )
11773   {
11774 
11775     if ( !value ) return "{}";
11776     std::string result;
11777 
11778     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
11779     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11780     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11781     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
11782     return "{ " + result.substr(0, result.size() - 3) + " }";
11783   }
11784 
11785 
11786   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits>;
11787 
11788   template <> struct FlagTraits<ExternalMemoryFeatureFlagBits>
11789   {
11790     enum : VkFlags
11791     {
11792       allFlags =
11793           VkFlags( ExternalMemoryFeatureFlagBits::eDedicatedOnly )
11794         | VkFlags( ExternalMemoryFeatureFlagBits::eExportable )
11795         | VkFlags( ExternalMemoryFeatureFlagBits::eImportable )
11796     };
11797   };
11798 
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11799   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11800   {
11801     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
11802   }
11803 
operator &(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11804   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11805   {
11806     return ExternalMemoryFeatureFlags( bit0 ) & bit1;
11807   }
11808 
operator ^(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11809   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11810   {
11811     return ExternalMemoryFeatureFlags( bit0 ) ^ bit1;
11812   }
11813 
operator ~(ExternalMemoryFeatureFlagBits bits)11814   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11815   {
11816     return ~( ExternalMemoryFeatureFlags( bits ) );
11817   }
11818 
11819   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
11820 
to_string(ExternalMemoryFeatureFlags value)11821   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value  )
11822   {
11823 
11824     if ( !value ) return "{}";
11825     std::string result;
11826 
11827     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | ";
11828     if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | ";
11829     if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | ";
11830     return "{ " + result.substr(0, result.size() - 3) + " }";
11831   }
11832 
11833 
11834   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
11835 
11836   template <> struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
11837   {
11838     enum : VkFlags
11839     {
11840       allFlags =
11841           VkFlags( ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly )
11842         | VkFlags( ExternalMemoryFeatureFlagBitsNV::eExportable )
11843         | VkFlags( ExternalMemoryFeatureFlagBitsNV::eImportable )
11844     };
11845   };
11846 
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)11847   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11848   {
11849     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
11850   }
11851 
operator &(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)11852   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11853   {
11854     return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1;
11855   }
11856 
operator ^(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)11857   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11858   {
11859     return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1;
11860   }
11861 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)11862   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11863   {
11864     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
11865   }
11866 
to_string(ExternalMemoryFeatureFlagsNV value)11867   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value  )
11868   {
11869 
11870     if ( !value ) return "{}";
11871     std::string result;
11872 
11873     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | ";
11874     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | ";
11875     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | ";
11876     return "{ " + result.substr(0, result.size() - 3) + " }";
11877   }
11878 
11879 
11880   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits>;
11881 
11882   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
11883   {
11884     enum : VkFlags
11885     {
11886       allFlags =
11887           VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
11888         | VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 )
11889         | VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt )
11890         | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11Texture )
11891         | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt )
11892         | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Heap )
11893         | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Resource )
11894         | VkFlags( ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
11895 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11896         | VkFlags( ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
11897 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11898         | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT )
11899         | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
11900     };
11901   };
11902 
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11903   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11904   {
11905     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
11906   }
11907 
operator &(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11908   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11909   {
11910     return ExternalMemoryHandleTypeFlags( bit0 ) & bit1;
11911   }
11912 
operator ^(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11913   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11914   {
11915     return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1;
11916   }
11917 
operator ~(ExternalMemoryHandleTypeFlagBits bits)11918   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11919   {
11920     return ~( ExternalMemoryHandleTypeFlags( bits ) );
11921   }
11922 
11923   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
11924 
to_string(ExternalMemoryHandleTypeFlags value)11925   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value  )
11926   {
11927 
11928     if ( !value ) return "{}";
11929     std::string result;
11930 
11931     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
11932     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11933     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11934     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | ";
11935     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | ";
11936     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | ";
11937     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | ";
11938     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | ";
11939 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11940     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | ";
11941 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11942     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | ";
11943     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | ";
11944     return "{ " + result.substr(0, result.size() - 3) + " }";
11945   }
11946 
11947 
11948   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
11949 
11950   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
11951   {
11952     enum : VkFlags
11953     {
11954       allFlags =
11955           VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 )
11956         | VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt )
11957         | VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image )
11958         | VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt )
11959     };
11960   };
11961 
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11962   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11963   {
11964     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
11965   }
11966 
operator &(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11967   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11968   {
11969     return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1;
11970   }
11971 
operator ^(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11972   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11973   {
11974     return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1;
11975   }
11976 
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)11977   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11978   {
11979     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
11980   }
11981 
to_string(ExternalMemoryHandleTypeFlagsNV value)11982   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value  )
11983   {
11984 
11985     if ( !value ) return "{}";
11986     std::string result;
11987 
11988     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11989     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11990     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | ";
11991     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | ";
11992     return "{ " + result.substr(0, result.size() - 3) + " }";
11993   }
11994 
11995 
11996   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits>;
11997 
11998   template <> struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
11999   {
12000     enum : VkFlags
12001     {
12002       allFlags =
12003           VkFlags( ExternalSemaphoreFeatureFlagBits::eExportable )
12004         | VkFlags( ExternalSemaphoreFeatureFlagBits::eImportable )
12005     };
12006   };
12007 
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)12008   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12009   {
12010     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
12011   }
12012 
operator &(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)12013   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12014   {
12015     return ExternalSemaphoreFeatureFlags( bit0 ) & bit1;
12016   }
12017 
operator ^(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)12018   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12019   {
12020     return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1;
12021   }
12022 
operator ~(ExternalSemaphoreFeatureFlagBits bits)12023   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
12024   {
12025     return ~( ExternalSemaphoreFeatureFlags( bits ) );
12026   }
12027 
12028   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
12029 
to_string(ExternalSemaphoreFeatureFlags value)12030   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value  )
12031   {
12032 
12033     if ( !value ) return "{}";
12034     std::string result;
12035 
12036     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | ";
12037     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | ";
12038     return "{ " + result.substr(0, result.size() - 3) + " }";
12039   }
12040 
12041 
12042   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits>;
12043 
12044   template <> struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
12045   {
12046     enum : VkFlags
12047     {
12048       allFlags =
12049           VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
12050         | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 )
12051         | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt )
12052         | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence )
12053         | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
12054     };
12055   };
12056 
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)12057   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12058   {
12059     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
12060   }
12061 
operator &(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)12062   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12063   {
12064     return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1;
12065   }
12066 
operator ^(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)12067   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12068   {
12069     return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1;
12070   }
12071 
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)12072   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
12073   {
12074     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
12075   }
12076 
12077   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
12078 
to_string(ExternalSemaphoreHandleTypeFlags value)12079   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value  )
12080   {
12081 
12082     if ( !value ) return "{}";
12083     std::string result;
12084 
12085     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
12086     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
12087     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
12088     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | ";
12089     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
12090     return "{ " + result.substr(0, result.size() - 3) + " }";
12091   }
12092 
12093 
12094   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
12095 
12096   template <> struct FlagTraits<FenceCreateFlagBits>
12097   {
12098     enum : VkFlags
12099     {
12100       allFlags =
12101           VkFlags( FenceCreateFlagBits::eSignaled )
12102     };
12103   };
12104 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)12105   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12106   {
12107     return FenceCreateFlags( bit0 ) | bit1;
12108   }
12109 
operator &(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)12110   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12111   {
12112     return FenceCreateFlags( bit0 ) & bit1;
12113   }
12114 
operator ^(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)12115   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12116   {
12117     return FenceCreateFlags( bit0 ) ^ bit1;
12118   }
12119 
operator ~(FenceCreateFlagBits bits)12120   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12121   {
12122     return ~( FenceCreateFlags( bits ) );
12123   }
12124 
to_string(FenceCreateFlags value)12125   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value  )
12126   {
12127 
12128     if ( !value ) return "{}";
12129     std::string result;
12130 
12131     if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | ";
12132     return "{ " + result.substr(0, result.size() - 3) + " }";
12133   }
12134 
12135 
12136   using FenceImportFlags = Flags<FenceImportFlagBits>;
12137 
12138   template <> struct FlagTraits<FenceImportFlagBits>
12139   {
12140     enum : VkFlags
12141     {
12142       allFlags =
12143           VkFlags( FenceImportFlagBits::eTemporary )
12144     };
12145   };
12146 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)12147   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12148   {
12149     return FenceImportFlags( bit0 ) | bit1;
12150   }
12151 
operator &(FenceImportFlagBits bit0,FenceImportFlagBits bit1)12152   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12153   {
12154     return FenceImportFlags( bit0 ) & bit1;
12155   }
12156 
operator ^(FenceImportFlagBits bit0,FenceImportFlagBits bit1)12157   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12158   {
12159     return FenceImportFlags( bit0 ) ^ bit1;
12160   }
12161 
operator ~(FenceImportFlagBits bits)12162   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
12163   {
12164     return ~( FenceImportFlags( bits ) );
12165   }
12166 
12167   using FenceImportFlagsKHR = FenceImportFlags;
12168 
to_string(FenceImportFlags value)12169   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value  )
12170   {
12171 
12172     if ( !value ) return "{}";
12173     std::string result;
12174 
12175     if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | ";
12176     return "{ " + result.substr(0, result.size() - 3) + " }";
12177   }
12178 
12179 
12180   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
12181 
12182   template <> struct FlagTraits<FormatFeatureFlagBits>
12183   {
12184     enum : VkFlags
12185     {
12186       allFlags =
12187           VkFlags( FormatFeatureFlagBits::eSampledImage )
12188         | VkFlags( FormatFeatureFlagBits::eStorageImage )
12189         | VkFlags( FormatFeatureFlagBits::eStorageImageAtomic )
12190         | VkFlags( FormatFeatureFlagBits::eUniformTexelBuffer )
12191         | VkFlags( FormatFeatureFlagBits::eStorageTexelBuffer )
12192         | VkFlags( FormatFeatureFlagBits::eStorageTexelBufferAtomic )
12193         | VkFlags( FormatFeatureFlagBits::eVertexBuffer )
12194         | VkFlags( FormatFeatureFlagBits::eColorAttachment )
12195         | VkFlags( FormatFeatureFlagBits::eColorAttachmentBlend )
12196         | VkFlags( FormatFeatureFlagBits::eDepthStencilAttachment )
12197         | VkFlags( FormatFeatureFlagBits::eBlitSrc )
12198         | VkFlags( FormatFeatureFlagBits::eBlitDst )
12199         | VkFlags( FormatFeatureFlagBits::eSampledImageFilterLinear )
12200         | VkFlags( FormatFeatureFlagBits::eTransferSrc )
12201         | VkFlags( FormatFeatureFlagBits::eTransferDst )
12202         | VkFlags( FormatFeatureFlagBits::eMidpointChromaSamples )
12203         | VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter )
12204         | VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter )
12205         | VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit )
12206         | VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable )
12207         | VkFlags( FormatFeatureFlagBits::eDisjoint )
12208         | VkFlags( FormatFeatureFlagBits::eCositedChromaSamples )
12209         | VkFlags( FormatFeatureFlagBits::eSampledImageFilterMinmax )
12210         | VkFlags( FormatFeatureFlagBits::eSampledImageFilterCubicIMG )
12211         | VkFlags( FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR )
12212         | VkFlags( FormatFeatureFlagBits::eFragmentDensityMapEXT )
12213         | VkFlags( FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR )
12214     };
12215   };
12216 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)12217   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12218   {
12219     return FormatFeatureFlags( bit0 ) | bit1;
12220   }
12221 
operator &(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)12222   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12223   {
12224     return FormatFeatureFlags( bit0 ) & bit1;
12225   }
12226 
operator ^(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)12227   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12228   {
12229     return FormatFeatureFlags( bit0 ) ^ bit1;
12230   }
12231 
operator ~(FormatFeatureFlagBits bits)12232   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
12233   {
12234     return ~( FormatFeatureFlags( bits ) );
12235   }
12236 
to_string(FormatFeatureFlags value)12237   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value  )
12238   {
12239 
12240     if ( !value ) return "{}";
12241     std::string result;
12242 
12243     if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | ";
12244     if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | ";
12245     if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | ";
12246     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
12247     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
12248     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | ";
12249     if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
12250     if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | ";
12251     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | ";
12252     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
12253     if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | ";
12254     if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | ";
12255     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | ";
12256     if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | ";
12257     if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | ";
12258     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | ";
12259     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | ";
12260     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
12261     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
12262     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
12263     if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | ";
12264     if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | ";
12265     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) result += "SampledImageFilterMinmax | ";
12266     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | ";
12267     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) result += "AccelerationStructureVertexBufferKHR | ";
12268     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
12269     if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR ) result += "FragmentShadingRateAttachmentKHR | ";
12270     return "{ " + result.substr(0, result.size() - 3) + " }";
12271   }
12272 
12273 
12274   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
12275 
12276   template <> struct FlagTraits<FramebufferCreateFlagBits>
12277   {
12278     enum : VkFlags
12279     {
12280       allFlags =
12281           VkFlags( FramebufferCreateFlagBits::eImageless )
12282     };
12283   };
12284 
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)12285   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12286   {
12287     return FramebufferCreateFlags( bit0 ) | bit1;
12288   }
12289 
operator &(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)12290   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12291   {
12292     return FramebufferCreateFlags( bit0 ) & bit1;
12293   }
12294 
operator ^(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)12295   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12296   {
12297     return FramebufferCreateFlags( bit0 ) ^ bit1;
12298   }
12299 
operator ~(FramebufferCreateFlagBits bits)12300   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12301   {
12302     return ~( FramebufferCreateFlags( bits ) );
12303   }
12304 
to_string(FramebufferCreateFlags value)12305   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value  )
12306   {
12307 
12308     if ( !value ) return "{}";
12309     std::string result;
12310 
12311     if ( value & FramebufferCreateFlagBits::eImageless ) result += "Imageless | ";
12312     return "{ " + result.substr(0, result.size() - 3) + " }";
12313   }
12314 
12315 
12316   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
12317 
12318   template <> struct FlagTraits<GeometryFlagBitsKHR>
12319   {
12320     enum : VkFlags
12321     {
12322       allFlags =
12323           VkFlags( GeometryFlagBitsKHR::eOpaque )
12324         | VkFlags( GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation )
12325     };
12326   };
12327 
operator |(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)12328   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12329   {
12330     return GeometryFlagsKHR( bit0 ) | bit1;
12331   }
12332 
operator &(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)12333   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12334   {
12335     return GeometryFlagsKHR( bit0 ) & bit1;
12336   }
12337 
operator ^(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)12338   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12339   {
12340     return GeometryFlagsKHR( bit0 ) ^ bit1;
12341   }
12342 
operator ~(GeometryFlagBitsKHR bits)12343   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12344   {
12345     return ~( GeometryFlagsKHR( bits ) );
12346   }
12347 
12348   using GeometryFlagsNV = GeometryFlagsKHR;
12349 
to_string(GeometryFlagsKHR value)12350   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value  )
12351   {
12352 
12353     if ( !value ) return "{}";
12354     std::string result;
12355 
12356     if ( value & GeometryFlagBitsKHR::eOpaque ) result += "Opaque | ";
12357     if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | ";
12358     return "{ " + result.substr(0, result.size() - 3) + " }";
12359   }
12360 
12361 
12362   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
12363 
12364   template <> struct FlagTraits<GeometryInstanceFlagBitsKHR>
12365   {
12366     enum : VkFlags
12367     {
12368       allFlags =
12369           VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable )
12370         | VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise )
12371         | VkFlags( GeometryInstanceFlagBitsKHR::eForceOpaque )
12372         | VkFlags( GeometryInstanceFlagBitsKHR::eForceNoOpaque )
12373     };
12374   };
12375 
operator |(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)12376   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12377   {
12378     return GeometryInstanceFlagsKHR( bit0 ) | bit1;
12379   }
12380 
operator &(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)12381   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12382   {
12383     return GeometryInstanceFlagsKHR( bit0 ) & bit1;
12384   }
12385 
operator ^(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)12386   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12387   {
12388     return GeometryInstanceFlagsKHR( bit0 ) ^ bit1;
12389   }
12390 
operator ~(GeometryInstanceFlagBitsKHR bits)12391   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12392   {
12393     return ~( GeometryInstanceFlagsKHR( bits ) );
12394   }
12395 
12396   using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
12397 
to_string(GeometryInstanceFlagsKHR value)12398   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value  )
12399   {
12400 
12401     if ( !value ) return "{}";
12402     std::string result;
12403 
12404     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) result += "TriangleFacingCullDisable | ";
12405     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | ";
12406     if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque ) result += "ForceOpaque | ";
12407     if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque ) result += "ForceNoOpaque | ";
12408     return "{ " + result.substr(0, result.size() - 3) + " }";
12409   }
12410 
12411   enum class HeadlessSurfaceCreateFlagBitsEXT : VkFlags
12412   {};
12413 
to_string(HeadlessSurfaceCreateFlagBitsEXT)12414   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
12415   {
12416     return "(void)";
12417   }
12418 
12419   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
12420 
to_string(HeadlessSurfaceCreateFlagsEXT)12421   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT  )
12422   {
12423 
12424     return "{}";
12425   }
12426 
12427 #ifdef VK_USE_PLATFORM_IOS_MVK
12428   enum class IOSSurfaceCreateFlagBitsMVK : VkFlags
12429   {};
12430 
to_string(IOSSurfaceCreateFlagBitsMVK)12431   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
12432   {
12433     return "(void)";
12434   }
12435 
12436   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
12437 
to_string(IOSSurfaceCreateFlagsMVK)12438   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK  )
12439   {
12440 
12441     return "{}";
12442   }
12443 #endif /*VK_USE_PLATFORM_IOS_MVK*/
12444 
12445 
12446   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
12447 
12448   template <> struct FlagTraits<ImageAspectFlagBits>
12449   {
12450     enum : VkFlags
12451     {
12452       allFlags =
12453           VkFlags( ImageAspectFlagBits::eColor )
12454         | VkFlags( ImageAspectFlagBits::eDepth )
12455         | VkFlags( ImageAspectFlagBits::eStencil )
12456         | VkFlags( ImageAspectFlagBits::eMetadata )
12457         | VkFlags( ImageAspectFlagBits::ePlane0 )
12458         | VkFlags( ImageAspectFlagBits::ePlane1 )
12459         | VkFlags( ImageAspectFlagBits::ePlane2 )
12460         | VkFlags( ImageAspectFlagBits::eMemoryPlane0EXT )
12461         | VkFlags( ImageAspectFlagBits::eMemoryPlane1EXT )
12462         | VkFlags( ImageAspectFlagBits::eMemoryPlane2EXT )
12463         | VkFlags( ImageAspectFlagBits::eMemoryPlane3EXT )
12464     };
12465   };
12466 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)12467   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12468   {
12469     return ImageAspectFlags( bit0 ) | bit1;
12470   }
12471 
operator &(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)12472   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12473   {
12474     return ImageAspectFlags( bit0 ) & bit1;
12475   }
12476 
operator ^(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)12477   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12478   {
12479     return ImageAspectFlags( bit0 ) ^ bit1;
12480   }
12481 
operator ~(ImageAspectFlagBits bits)12482   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT
12483   {
12484     return ~( ImageAspectFlags( bits ) );
12485   }
12486 
to_string(ImageAspectFlags value)12487   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value  )
12488   {
12489 
12490     if ( !value ) return "{}";
12491     std::string result;
12492 
12493     if ( value & ImageAspectFlagBits::eColor ) result += "Color | ";
12494     if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | ";
12495     if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | ";
12496     if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | ";
12497     if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | ";
12498     if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | ";
12499     if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | ";
12500     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | ";
12501     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | ";
12502     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | ";
12503     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | ";
12504     return "{ " + result.substr(0, result.size() - 3) + " }";
12505   }
12506 
12507 
12508   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
12509 
12510   template <> struct FlagTraits<ImageCreateFlagBits>
12511   {
12512     enum : VkFlags
12513     {
12514       allFlags =
12515           VkFlags( ImageCreateFlagBits::eSparseBinding )
12516         | VkFlags( ImageCreateFlagBits::eSparseResidency )
12517         | VkFlags( ImageCreateFlagBits::eSparseAliased )
12518         | VkFlags( ImageCreateFlagBits::eMutableFormat )
12519         | VkFlags( ImageCreateFlagBits::eCubeCompatible )
12520         | VkFlags( ImageCreateFlagBits::eAlias )
12521         | VkFlags( ImageCreateFlagBits::eSplitInstanceBindRegions )
12522         | VkFlags( ImageCreateFlagBits::e2DArrayCompatible )
12523         | VkFlags( ImageCreateFlagBits::eBlockTexelViewCompatible )
12524         | VkFlags( ImageCreateFlagBits::eExtendedUsage )
12525         | VkFlags( ImageCreateFlagBits::eProtected )
12526         | VkFlags( ImageCreateFlagBits::eDisjoint )
12527         | VkFlags( ImageCreateFlagBits::eCornerSampledNV )
12528         | VkFlags( ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT )
12529         | VkFlags( ImageCreateFlagBits::eSubsampledEXT )
12530     };
12531   };
12532 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)12533   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12534   {
12535     return ImageCreateFlags( bit0 ) | bit1;
12536   }
12537 
operator &(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)12538   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12539   {
12540     return ImageCreateFlags( bit0 ) & bit1;
12541   }
12542 
operator ^(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)12543   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12544   {
12545     return ImageCreateFlags( bit0 ) ^ bit1;
12546   }
12547 
operator ~(ImageCreateFlagBits bits)12548   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12549   {
12550     return ~( ImageCreateFlags( bits ) );
12551   }
12552 
to_string(ImageCreateFlags value)12553   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value  )
12554   {
12555 
12556     if ( !value ) return "{}";
12557     std::string result;
12558 
12559     if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
12560     if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
12561     if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
12562     if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | ";
12563     if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | ";
12564     if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | ";
12565     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
12566     if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | ";
12567     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | ";
12568     if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | ";
12569     if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | ";
12570     if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | ";
12571     if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | ";
12572     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | ";
12573     if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
12574     return "{ " + result.substr(0, result.size() - 3) + " }";
12575   }
12576 
12577 #ifdef VK_USE_PLATFORM_FUCHSIA
12578   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags
12579   {};
12580 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)12581   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
12582   {
12583     return "(void)";
12584   }
12585 
12586   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
12587 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)12588   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA  )
12589   {
12590 
12591     return "{}";
12592   }
12593 #endif /*VK_USE_PLATFORM_FUCHSIA*/
12594 
12595 
12596   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
12597 
12598   template <> struct FlagTraits<ImageUsageFlagBits>
12599   {
12600     enum : VkFlags
12601     {
12602       allFlags =
12603           VkFlags( ImageUsageFlagBits::eTransferSrc )
12604         | VkFlags( ImageUsageFlagBits::eTransferDst )
12605         | VkFlags( ImageUsageFlagBits::eSampled )
12606         | VkFlags( ImageUsageFlagBits::eStorage )
12607         | VkFlags( ImageUsageFlagBits::eColorAttachment )
12608         | VkFlags( ImageUsageFlagBits::eDepthStencilAttachment )
12609         | VkFlags( ImageUsageFlagBits::eTransientAttachment )
12610         | VkFlags( ImageUsageFlagBits::eInputAttachment )
12611         | VkFlags( ImageUsageFlagBits::eShadingRateImageNV )
12612         | VkFlags( ImageUsageFlagBits::eFragmentDensityMapEXT )
12613     };
12614   };
12615 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)12616   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12617   {
12618     return ImageUsageFlags( bit0 ) | bit1;
12619   }
12620 
operator &(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)12621   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12622   {
12623     return ImageUsageFlags( bit0 ) & bit1;
12624   }
12625 
operator ^(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)12626   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12627   {
12628     return ImageUsageFlags( bit0 ) ^ bit1;
12629   }
12630 
operator ~(ImageUsageFlagBits bits)12631   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
12632   {
12633     return ~( ImageUsageFlags( bits ) );
12634   }
12635 
to_string(ImageUsageFlags value)12636   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value  )
12637   {
12638 
12639     if ( !value ) return "{}";
12640     std::string result;
12641 
12642     if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
12643     if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | ";
12644     if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | ";
12645     if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | ";
12646     if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | ";
12647     if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
12648     if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | ";
12649     if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | ";
12650     if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
12651     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
12652     return "{ " + result.substr(0, result.size() - 3) + " }";
12653   }
12654 
12655 
12656   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
12657 
12658   template <> struct FlagTraits<ImageViewCreateFlagBits>
12659   {
12660     enum : VkFlags
12661     {
12662       allFlags =
12663           VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT )
12664         | VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT )
12665     };
12666   };
12667 
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)12668   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12669   {
12670     return ImageViewCreateFlags( bit0 ) | bit1;
12671   }
12672 
operator &(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)12673   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12674   {
12675     return ImageViewCreateFlags( bit0 ) & bit1;
12676   }
12677 
operator ^(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)12678   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12679   {
12680     return ImageViewCreateFlags( bit0 ) ^ bit1;
12681   }
12682 
operator ~(ImageViewCreateFlagBits bits)12683   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12684   {
12685     return ~( ImageViewCreateFlags( bits ) );
12686   }
12687 
to_string(ImageViewCreateFlags value)12688   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value  )
12689   {
12690 
12691     if ( !value ) return "{}";
12692     std::string result;
12693 
12694     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | ";
12695     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) result += "FragmentDensityMapDeferredEXT | ";
12696     return "{ " + result.substr(0, result.size() - 3) + " }";
12697   }
12698 
12699 
12700   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
12701 
12702   template <> struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
12703   {
12704     enum : VkFlags
12705     {
12706       allFlags =
12707           VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess )
12708         | VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences )
12709         | VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences )
12710     };
12711   };
12712 
operator |(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)12713   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12714   {
12715     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1;
12716   }
12717 
operator &(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)12718   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12719   {
12720     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1;
12721   }
12722 
operator ^(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)12723   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12724   {
12725     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1;
12726   }
12727 
operator ~(IndirectCommandsLayoutUsageFlagBitsNV bits)12728   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
12729   {
12730     return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) );
12731   }
12732 
to_string(IndirectCommandsLayoutUsageFlagsNV value)12733   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value  )
12734   {
12735 
12736     if ( !value ) return "{}";
12737     std::string result;
12738 
12739     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) result += "ExplicitPreprocess | ";
12740     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) result += "IndexedSequences | ";
12741     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) result += "UnorderedSequences | ";
12742     return "{ " + result.substr(0, result.size() - 3) + " }";
12743   }
12744 
12745 
12746   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
12747 
12748   template <> struct FlagTraits<IndirectStateFlagBitsNV>
12749   {
12750     enum : VkFlags
12751     {
12752       allFlags =
12753           VkFlags( IndirectStateFlagBitsNV::eFlagFrontface )
12754     };
12755   };
12756 
operator |(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)12757   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12758   {
12759     return IndirectStateFlagsNV( bit0 ) | bit1;
12760   }
12761 
operator &(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)12762   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12763   {
12764     return IndirectStateFlagsNV( bit0 ) & bit1;
12765   }
12766 
operator ^(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)12767   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12768   {
12769     return IndirectStateFlagsNV( bit0 ) ^ bit1;
12770   }
12771 
operator ~(IndirectStateFlagBitsNV bits)12772   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
12773   {
12774     return ~( IndirectStateFlagsNV( bits ) );
12775   }
12776 
to_string(IndirectStateFlagsNV value)12777   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value  )
12778   {
12779 
12780     if ( !value ) return "{}";
12781     std::string result;
12782 
12783     if ( value & IndirectStateFlagBitsNV::eFlagFrontface ) result += "FlagFrontface | ";
12784     return "{ " + result.substr(0, result.size() - 3) + " }";
12785   }
12786 
12787 
12788   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
12789 
to_string(InstanceCreateFlags)12790   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags  )
12791   {
12792 
12793     return "{}";
12794   }
12795 
12796 #ifdef VK_USE_PLATFORM_MACOS_MVK
12797   enum class MacOSSurfaceCreateFlagBitsMVK : VkFlags
12798   {};
12799 
to_string(MacOSSurfaceCreateFlagBitsMVK)12800   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
12801   {
12802     return "(void)";
12803   }
12804 
12805   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
12806 
to_string(MacOSSurfaceCreateFlagsMVK)12807   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK  )
12808   {
12809 
12810     return "{}";
12811   }
12812 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
12813 
12814 
12815   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits>;
12816 
12817   template <> struct FlagTraits<MemoryAllocateFlagBits>
12818   {
12819     enum : VkFlags
12820     {
12821       allFlags =
12822           VkFlags( MemoryAllocateFlagBits::eDeviceMask )
12823         | VkFlags( MemoryAllocateFlagBits::eDeviceAddress )
12824         | VkFlags( MemoryAllocateFlagBits::eDeviceAddressCaptureReplay )
12825     };
12826   };
12827 
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)12828   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12829   {
12830     return MemoryAllocateFlags( bit0 ) | bit1;
12831   }
12832 
operator &(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)12833   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12834   {
12835     return MemoryAllocateFlags( bit0 ) & bit1;
12836   }
12837 
operator ^(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)12838   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12839   {
12840     return MemoryAllocateFlags( bit0 ) ^ bit1;
12841   }
12842 
operator ~(MemoryAllocateFlagBits bits)12843   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12844   {
12845     return ~( MemoryAllocateFlags( bits ) );
12846   }
12847 
12848   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
12849 
to_string(MemoryAllocateFlags value)12850   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value  )
12851   {
12852 
12853     if ( !value ) return "{}";
12854     std::string result;
12855 
12856     if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | ";
12857     if ( value & MemoryAllocateFlagBits::eDeviceAddress ) result += "DeviceAddress | ";
12858     if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
12859     return "{ " + result.substr(0, result.size() - 3) + " }";
12860   }
12861 
12862 
12863   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
12864 
12865   template <> struct FlagTraits<MemoryHeapFlagBits>
12866   {
12867     enum : VkFlags
12868     {
12869       allFlags =
12870           VkFlags( MemoryHeapFlagBits::eDeviceLocal )
12871         | VkFlags( MemoryHeapFlagBits::eMultiInstance )
12872     };
12873   };
12874 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)12875   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12876   {
12877     return MemoryHeapFlags( bit0 ) | bit1;
12878   }
12879 
operator &(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)12880   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12881   {
12882     return MemoryHeapFlags( bit0 ) & bit1;
12883   }
12884 
operator ^(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)12885   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12886   {
12887     return MemoryHeapFlags( bit0 ) ^ bit1;
12888   }
12889 
operator ~(MemoryHeapFlagBits bits)12890   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT
12891   {
12892     return ~( MemoryHeapFlags( bits ) );
12893   }
12894 
to_string(MemoryHeapFlags value)12895   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value  )
12896   {
12897 
12898     if ( !value ) return "{}";
12899     std::string result;
12900 
12901     if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
12902     if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | ";
12903     return "{ " + result.substr(0, result.size() - 3) + " }";
12904   }
12905 
12906   enum class MemoryMapFlagBits : VkFlags
12907   {};
12908 
to_string(MemoryMapFlagBits)12909   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
12910   {
12911     return "(void)";
12912   }
12913 
12914   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
12915 
to_string(MemoryMapFlags)12916   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags  )
12917   {
12918 
12919     return "{}";
12920   }
12921 
12922 
12923   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
12924 
12925   template <> struct FlagTraits<MemoryPropertyFlagBits>
12926   {
12927     enum : VkFlags
12928     {
12929       allFlags =
12930           VkFlags( MemoryPropertyFlagBits::eDeviceLocal )
12931         | VkFlags( MemoryPropertyFlagBits::eHostVisible )
12932         | VkFlags( MemoryPropertyFlagBits::eHostCoherent )
12933         | VkFlags( MemoryPropertyFlagBits::eHostCached )
12934         | VkFlags( MemoryPropertyFlagBits::eLazilyAllocated )
12935         | VkFlags( MemoryPropertyFlagBits::eProtected )
12936         | VkFlags( MemoryPropertyFlagBits::eDeviceCoherentAMD )
12937         | VkFlags( MemoryPropertyFlagBits::eDeviceUncachedAMD )
12938     };
12939   };
12940 
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)12941   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12942   {
12943     return MemoryPropertyFlags( bit0 ) | bit1;
12944   }
12945 
operator &(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)12946   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12947   {
12948     return MemoryPropertyFlags( bit0 ) & bit1;
12949   }
12950 
operator ^(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)12951   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12952   {
12953     return MemoryPropertyFlags( bit0 ) ^ bit1;
12954   }
12955 
operator ~(MemoryPropertyFlagBits bits)12956   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) VULKAN_HPP_NOEXCEPT
12957   {
12958     return ~( MemoryPropertyFlags( bits ) );
12959   }
12960 
to_string(MemoryPropertyFlags value)12961   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value  )
12962   {
12963 
12964     if ( !value ) return "{}";
12965     std::string result;
12966 
12967     if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
12968     if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | ";
12969     if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | ";
12970     if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | ";
12971     if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | ";
12972     if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | ";
12973     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | ";
12974     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | ";
12975     return "{ " + result.substr(0, result.size() - 3) + " }";
12976   }
12977 
12978 #ifdef VK_USE_PLATFORM_METAL_EXT
12979   enum class MetalSurfaceCreateFlagBitsEXT : VkFlags
12980   {};
12981 
to_string(MetalSurfaceCreateFlagBitsEXT)12982   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
12983   {
12984     return "(void)";
12985   }
12986 
12987   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
12988 
to_string(MetalSurfaceCreateFlagsEXT)12989   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT  )
12990   {
12991 
12992     return "{}";
12993   }
12994 #endif /*VK_USE_PLATFORM_METAL_EXT*/
12995 
12996 
12997   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits>;
12998 
12999   template <> struct FlagTraits<PeerMemoryFeatureFlagBits>
13000   {
13001     enum : VkFlags
13002     {
13003       allFlags =
13004           VkFlags( PeerMemoryFeatureFlagBits::eCopySrc )
13005         | VkFlags( PeerMemoryFeatureFlagBits::eCopyDst )
13006         | VkFlags( PeerMemoryFeatureFlagBits::eGenericSrc )
13007         | VkFlags( PeerMemoryFeatureFlagBits::eGenericDst )
13008     };
13009   };
13010 
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)13011   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13012   {
13013     return PeerMemoryFeatureFlags( bit0 ) | bit1;
13014   }
13015 
operator &(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)13016   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13017   {
13018     return PeerMemoryFeatureFlags( bit0 ) & bit1;
13019   }
13020 
operator ^(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)13021   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13022   {
13023     return PeerMemoryFeatureFlags( bit0 ) ^ bit1;
13024   }
13025 
operator ~(PeerMemoryFeatureFlagBits bits)13026   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
13027   {
13028     return ~( PeerMemoryFeatureFlags( bits ) );
13029   }
13030 
13031   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
13032 
to_string(PeerMemoryFeatureFlags value)13033   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value  )
13034   {
13035 
13036     if ( !value ) return "{}";
13037     std::string result;
13038 
13039     if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | ";
13040     if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | ";
13041     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | ";
13042     if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | ";
13043     return "{ " + result.substr(0, result.size() - 3) + " }";
13044   }
13045 
13046 
13047   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
13048 
13049   template <> struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
13050   {
13051     enum : VkFlags
13052     {
13053       allFlags =
13054           VkFlags( PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting )
13055         | VkFlags( PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted )
13056     };
13057   };
13058 
operator |(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13059   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13060   {
13061     return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1;
13062   }
13063 
operator &(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13064   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13065   {
13066     return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1;
13067   }
13068 
operator ^(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13069   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13070   {
13071     return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1;
13072   }
13073 
operator ~(PerformanceCounterDescriptionFlagBitsKHR bits)13074   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13075   {
13076     return ~( PerformanceCounterDescriptionFlagsKHR( bits ) );
13077   }
13078 
to_string(PerformanceCounterDescriptionFlagsKHR value)13079   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value  )
13080   {
13081 
13082     if ( !value ) return "{}";
13083     std::string result;
13084 
13085     if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) result += "PerformanceImpacting | ";
13086     if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) result += "ConcurrentlyImpacted | ";
13087     return "{ " + result.substr(0, result.size() - 3) + " }";
13088   }
13089 
13090 
13091   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
13092 
13093   template <> struct FlagTraits<PipelineCacheCreateFlagBits>
13094   {
13095     enum : VkFlags
13096     {
13097       allFlags =
13098           VkFlags( PipelineCacheCreateFlagBits::eExternallySynchronizedEXT )
13099     };
13100   };
13101 
operator |(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)13102   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13103   {
13104     return PipelineCacheCreateFlags( bit0 ) | bit1;
13105   }
13106 
operator &(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)13107   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13108   {
13109     return PipelineCacheCreateFlags( bit0 ) & bit1;
13110   }
13111 
operator ^(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)13112   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13113   {
13114     return PipelineCacheCreateFlags( bit0 ) ^ bit1;
13115   }
13116 
operator ~(PipelineCacheCreateFlagBits bits)13117   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
13118   {
13119     return ~( PipelineCacheCreateFlags( bits ) );
13120   }
13121 
to_string(PipelineCacheCreateFlags value)13122   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value  )
13123   {
13124 
13125     if ( !value ) return "{}";
13126     std::string result;
13127 
13128     if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) result += "ExternallySynchronizedEXT | ";
13129     return "{ " + result.substr(0, result.size() - 3) + " }";
13130   }
13131 
13132   enum class PipelineColorBlendStateCreateFlagBits : VkFlags
13133   {};
13134 
to_string(PipelineColorBlendStateCreateFlagBits)13135   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
13136   {
13137     return "(void)";
13138   }
13139 
13140   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
13141 
to_string(PipelineColorBlendStateCreateFlags)13142   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags  )
13143   {
13144 
13145     return "{}";
13146   }
13147 
13148 
13149   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
13150 
to_string(PipelineCompilerControlFlagsAMD)13151   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD  )
13152   {
13153 
13154     return "{}";
13155   }
13156 
13157   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkFlags
13158   {};
13159 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)13160   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
13161   {
13162     return "(void)";
13163   }
13164 
13165   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
13166 
to_string(PipelineCoverageModulationStateCreateFlagsNV)13167   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV  )
13168   {
13169 
13170     return "{}";
13171   }
13172 
13173   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkFlags
13174   {};
13175 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)13176   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
13177   {
13178     return "(void)";
13179   }
13180 
13181   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
13182 
to_string(PipelineCoverageReductionStateCreateFlagsNV)13183   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV  )
13184   {
13185 
13186     return "{}";
13187   }
13188 
13189   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkFlags
13190   {};
13191 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)13192   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
13193   {
13194     return "(void)";
13195   }
13196 
13197   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
13198 
to_string(PipelineCoverageToColorStateCreateFlagsNV)13199   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV  )
13200   {
13201 
13202     return "{}";
13203   }
13204 
13205 
13206   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
13207 
13208   template <> struct FlagTraits<PipelineCreateFlagBits>
13209   {
13210     enum : VkFlags
13211     {
13212       allFlags =
13213           VkFlags( PipelineCreateFlagBits::eDisableOptimization )
13214         | VkFlags( PipelineCreateFlagBits::eAllowDerivatives )
13215         | VkFlags( PipelineCreateFlagBits::eDerivative )
13216         | VkFlags( PipelineCreateFlagBits::eViewIndexFromDeviceIndex )
13217         | VkFlags( PipelineCreateFlagBits::eDispatchBase )
13218         | VkFlags( PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR )
13219         | VkFlags( PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR )
13220         | VkFlags( PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR )
13221         | VkFlags( PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR )
13222         | VkFlags( PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR )
13223         | VkFlags( PipelineCreateFlagBits::eRayTracingSkipAabbsKHR )
13224         | VkFlags( PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR )
13225         | VkFlags( PipelineCreateFlagBits::eDeferCompileNV )
13226         | VkFlags( PipelineCreateFlagBits::eCaptureStatisticsKHR )
13227         | VkFlags( PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR )
13228         | VkFlags( PipelineCreateFlagBits::eIndirectBindableNV )
13229         | VkFlags( PipelineCreateFlagBits::eLibraryKHR )
13230         | VkFlags( PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT )
13231         | VkFlags( PipelineCreateFlagBits::eEarlyReturnOnFailureEXT )
13232     };
13233   };
13234 
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)13235   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13236   {
13237     return PipelineCreateFlags( bit0 ) | bit1;
13238   }
13239 
operator &(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)13240   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13241   {
13242     return PipelineCreateFlags( bit0 ) & bit1;
13243   }
13244 
operator ^(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)13245   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13246   {
13247     return PipelineCreateFlags( bit0 ) ^ bit1;
13248   }
13249 
operator ~(PipelineCreateFlagBits bits)13250   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
13251   {
13252     return ~( PipelineCreateFlags( bits ) );
13253   }
13254 
to_string(PipelineCreateFlags value)13255   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value  )
13256   {
13257 
13258     if ( !value ) return "{}";
13259     std::string result;
13260 
13261     if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | ";
13262     if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | ";
13263     if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | ";
13264     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | ";
13265     if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | ";
13266     if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) result += "RayTracingNoNullAnyHitShadersKHR | ";
13267     if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) result += "RayTracingNoNullClosestHitShadersKHR | ";
13268     if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) result += "RayTracingNoNullMissShadersKHR | ";
13269     if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) result += "RayTracingNoNullIntersectionShadersKHR | ";
13270     if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) result += "RayTracingSkipTrianglesKHR | ";
13271     if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) result += "RayTracingSkipAabbsKHR | ";
13272     if ( value & PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) result += "RayTracingShaderGroupHandleCaptureReplayKHR | ";
13273     if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | ";
13274     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | ";
13275     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | ";
13276     if ( value & PipelineCreateFlagBits::eIndirectBindableNV ) result += "IndirectBindableNV | ";
13277     if ( value & PipelineCreateFlagBits::eLibraryKHR ) result += "LibraryKHR | ";
13278     if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) result += "FailOnPipelineCompileRequiredEXT | ";
13279     if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) result += "EarlyReturnOnFailureEXT | ";
13280     return "{ " + result.substr(0, result.size() - 3) + " }";
13281   }
13282 
13283 
13284   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT>;
13285 
13286   template <> struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
13287   {
13288     enum : VkFlags
13289     {
13290       allFlags =
13291           VkFlags( PipelineCreationFeedbackFlagBitsEXT::eValid )
13292         | VkFlags( PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit )
13293         | VkFlags( PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration )
13294     };
13295   };
13296 
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13297   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13298   {
13299     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
13300   }
13301 
operator &(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13302   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13303   {
13304     return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1;
13305   }
13306 
operator ^(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13307   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13308   {
13309     return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1;
13310   }
13311 
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)13312   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13313   {
13314     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
13315   }
13316 
to_string(PipelineCreationFeedbackFlagsEXT value)13317   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value  )
13318   {
13319 
13320     if ( !value ) return "{}";
13321     std::string result;
13322 
13323     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | ";
13324     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | ";
13325     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | ";
13326     return "{ " + result.substr(0, result.size() - 3) + " }";
13327   }
13328 
13329   enum class PipelineDepthStencilStateCreateFlagBits : VkFlags
13330   {};
13331 
to_string(PipelineDepthStencilStateCreateFlagBits)13332   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
13333   {
13334     return "(void)";
13335   }
13336 
13337   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
13338 
to_string(PipelineDepthStencilStateCreateFlags)13339   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags  )
13340   {
13341 
13342     return "{}";
13343   }
13344 
13345   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkFlags
13346   {};
13347 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)13348   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
13349   {
13350     return "(void)";
13351   }
13352 
13353   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
13354 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)13355   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT  )
13356   {
13357 
13358     return "{}";
13359   }
13360 
13361   enum class PipelineDynamicStateCreateFlagBits : VkFlags
13362   {};
13363 
to_string(PipelineDynamicStateCreateFlagBits)13364   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
13365   {
13366     return "(void)";
13367   }
13368 
13369   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
13370 
to_string(PipelineDynamicStateCreateFlags)13371   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags  )
13372   {
13373 
13374     return "{}";
13375   }
13376 
13377   enum class PipelineInputAssemblyStateCreateFlagBits : VkFlags
13378   {};
13379 
to_string(PipelineInputAssemblyStateCreateFlagBits)13380   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
13381   {
13382     return "(void)";
13383   }
13384 
13385   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
13386 
to_string(PipelineInputAssemblyStateCreateFlags)13387   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags  )
13388   {
13389 
13390     return "{}";
13391   }
13392 
13393   enum class PipelineLayoutCreateFlagBits : VkFlags
13394   {};
13395 
to_string(PipelineLayoutCreateFlagBits)13396   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
13397   {
13398     return "(void)";
13399   }
13400 
13401   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
13402 
to_string(PipelineLayoutCreateFlags)13403   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags  )
13404   {
13405 
13406     return "{}";
13407   }
13408 
13409   enum class PipelineMultisampleStateCreateFlagBits : VkFlags
13410   {};
13411 
to_string(PipelineMultisampleStateCreateFlagBits)13412   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
13413   {
13414     return "(void)";
13415   }
13416 
13417   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
13418 
to_string(PipelineMultisampleStateCreateFlags)13419   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags  )
13420   {
13421 
13422     return "{}";
13423   }
13424 
13425   enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkFlags
13426   {};
13427 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)13428   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
13429   {
13430     return "(void)";
13431   }
13432 
13433   using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
13434 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)13435   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT  )
13436   {
13437 
13438     return "{}";
13439   }
13440 
13441   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkFlags
13442   {};
13443 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)13444   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
13445   {
13446     return "(void)";
13447   }
13448 
13449   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
13450 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)13451   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT  )
13452   {
13453 
13454     return "{}";
13455   }
13456 
13457   enum class PipelineRasterizationStateCreateFlagBits : VkFlags
13458   {};
13459 
to_string(PipelineRasterizationStateCreateFlagBits)13460   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
13461   {
13462     return "(void)";
13463   }
13464 
13465   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
13466 
to_string(PipelineRasterizationStateCreateFlags)13467   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags  )
13468   {
13469 
13470     return "{}";
13471   }
13472 
13473   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkFlags
13474   {};
13475 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)13476   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
13477   {
13478     return "(void)";
13479   }
13480 
13481   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
13482 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)13483   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT  )
13484   {
13485 
13486     return "{}";
13487   }
13488 
13489 
13490   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
13491 
13492   template <> struct FlagTraits<PipelineShaderStageCreateFlagBits>
13493   {
13494     enum : VkFlags
13495     {
13496       allFlags =
13497           VkFlags( PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT )
13498         | VkFlags( PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT )
13499     };
13500   };
13501 
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)13502   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13503   {
13504     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
13505   }
13506 
operator &(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)13507   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13508   {
13509     return PipelineShaderStageCreateFlags( bit0 ) & bit1;
13510   }
13511 
operator ^(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)13512   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13513   {
13514     return PipelineShaderStageCreateFlags( bit0 ) ^ bit1;
13515   }
13516 
operator ~(PipelineShaderStageCreateFlagBits bits)13517   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
13518   {
13519     return ~( PipelineShaderStageCreateFlags( bits ) );
13520   }
13521 
to_string(PipelineShaderStageCreateFlags value)13522   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value  )
13523   {
13524 
13525     if ( !value ) return "{}";
13526     std::string result;
13527 
13528     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | ";
13529     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | ";
13530     return "{ " + result.substr(0, result.size() - 3) + " }";
13531   }
13532 
13533 
13534   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
13535 
13536   template <> struct FlagTraits<PipelineStageFlagBits>
13537   {
13538     enum : VkFlags
13539     {
13540       allFlags =
13541           VkFlags( PipelineStageFlagBits::eTopOfPipe )
13542         | VkFlags( PipelineStageFlagBits::eDrawIndirect )
13543         | VkFlags( PipelineStageFlagBits::eVertexInput )
13544         | VkFlags( PipelineStageFlagBits::eVertexShader )
13545         | VkFlags( PipelineStageFlagBits::eTessellationControlShader )
13546         | VkFlags( PipelineStageFlagBits::eTessellationEvaluationShader )
13547         | VkFlags( PipelineStageFlagBits::eGeometryShader )
13548         | VkFlags( PipelineStageFlagBits::eFragmentShader )
13549         | VkFlags( PipelineStageFlagBits::eEarlyFragmentTests )
13550         | VkFlags( PipelineStageFlagBits::eLateFragmentTests )
13551         | VkFlags( PipelineStageFlagBits::eColorAttachmentOutput )
13552         | VkFlags( PipelineStageFlagBits::eComputeShader )
13553         | VkFlags( PipelineStageFlagBits::eTransfer )
13554         | VkFlags( PipelineStageFlagBits::eBottomOfPipe )
13555         | VkFlags( PipelineStageFlagBits::eHost )
13556         | VkFlags( PipelineStageFlagBits::eAllGraphics )
13557         | VkFlags( PipelineStageFlagBits::eAllCommands )
13558         | VkFlags( PipelineStageFlagBits::eTransformFeedbackEXT )
13559         | VkFlags( PipelineStageFlagBits::eConditionalRenderingEXT )
13560         | VkFlags( PipelineStageFlagBits::eAccelerationStructureBuildKHR )
13561         | VkFlags( PipelineStageFlagBits::eRayTracingShaderKHR )
13562         | VkFlags( PipelineStageFlagBits::eShadingRateImageNV )
13563         | VkFlags( PipelineStageFlagBits::eTaskShaderNV )
13564         | VkFlags( PipelineStageFlagBits::eMeshShaderNV )
13565         | VkFlags( PipelineStageFlagBits::eFragmentDensityProcessEXT )
13566         | VkFlags( PipelineStageFlagBits::eCommandPreprocessNV )
13567         | VkFlags( PipelineStageFlagBits::eNoneKHR )
13568     };
13569   };
13570 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)13571   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13572   {
13573     return PipelineStageFlags( bit0 ) | bit1;
13574   }
13575 
operator &(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)13576   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13577   {
13578     return PipelineStageFlags( bit0 ) & bit1;
13579   }
13580 
operator ^(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)13581   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13582   {
13583     return PipelineStageFlags( bit0 ) ^ bit1;
13584   }
13585 
operator ~(PipelineStageFlagBits bits)13586   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
13587   {
13588     return ~( PipelineStageFlags( bits ) );
13589   }
13590 
to_string(PipelineStageFlags value)13591   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value  )
13592   {
13593 
13594     if ( !value ) return "{}";
13595     std::string result;
13596 
13597     if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | ";
13598     if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | ";
13599     if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | ";
13600     if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | ";
13601     if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | ";
13602     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | ";
13603     if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | ";
13604     if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | ";
13605     if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | ";
13606     if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | ";
13607     if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | ";
13608     if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | ";
13609     if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | ";
13610     if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | ";
13611     if ( value & PipelineStageFlagBits::eHost ) result += "Host | ";
13612     if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | ";
13613     if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | ";
13614     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | ";
13615     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
13616     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR ) result += "AccelerationStructureBuildKHR | ";
13617     if ( value & PipelineStageFlagBits::eRayTracingShaderKHR ) result += "RayTracingShaderKHR | ";
13618     if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
13619     if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | ";
13620     if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | ";
13621     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | ";
13622     if ( value & PipelineStageFlagBits::eCommandPreprocessNV ) result += "CommandPreprocessNV | ";
13623     return "{ " + result.substr(0, result.size() - 3) + " }";
13624   }
13625 
13626 
13627   using PipelineStageFlags2KHR = Flags<PipelineStageFlagBits2KHR>;
13628 
13629   template <> struct FlagTraits<PipelineStageFlagBits2KHR>
13630   {
13631     enum : VkFlags64
13632     {
13633       allFlags =
13634           VkFlags64( PipelineStageFlagBits2KHR::e2None )
13635         | VkFlags64( PipelineStageFlagBits2KHR::e2TopOfPipe )
13636         | VkFlags64( PipelineStageFlagBits2KHR::e2DrawIndirect )
13637         | VkFlags64( PipelineStageFlagBits2KHR::e2VertexInput )
13638         | VkFlags64( PipelineStageFlagBits2KHR::e2VertexShader )
13639         | VkFlags64( PipelineStageFlagBits2KHR::e2TessellationControlShader )
13640         | VkFlags64( PipelineStageFlagBits2KHR::e2TessellationEvaluationShader )
13641         | VkFlags64( PipelineStageFlagBits2KHR::e2GeometryShader )
13642         | VkFlags64( PipelineStageFlagBits2KHR::e2FragmentShader )
13643         | VkFlags64( PipelineStageFlagBits2KHR::e2EarlyFragmentTests )
13644         | VkFlags64( PipelineStageFlagBits2KHR::e2LateFragmentTests )
13645         | VkFlags64( PipelineStageFlagBits2KHR::e2ColorAttachmentOutput )
13646         | VkFlags64( PipelineStageFlagBits2KHR::e2ComputeShader )
13647         | VkFlags64( PipelineStageFlagBits2KHR::e2AllTransfer )
13648         | VkFlags64( PipelineStageFlagBits2KHR::e2BottomOfPipe )
13649         | VkFlags64( PipelineStageFlagBits2KHR::e2Host )
13650         | VkFlags64( PipelineStageFlagBits2KHR::e2AllGraphics )
13651         | VkFlags64( PipelineStageFlagBits2KHR::e2AllCommands )
13652         | VkFlags64( PipelineStageFlagBits2KHR::e2Copy )
13653         | VkFlags64( PipelineStageFlagBits2KHR::e2Resolve )
13654         | VkFlags64( PipelineStageFlagBits2KHR::e2Blit )
13655         | VkFlags64( PipelineStageFlagBits2KHR::e2Clear )
13656         | VkFlags64( PipelineStageFlagBits2KHR::e2IndexInput )
13657         | VkFlags64( PipelineStageFlagBits2KHR::e2VertexAttributeInput )
13658         | VkFlags64( PipelineStageFlagBits2KHR::e2PreRasterizationShaders )
13659         | VkFlags64( PipelineStageFlagBits2KHR::e2TransformFeedbackExt )
13660         | VkFlags64( PipelineStageFlagBits2KHR::e2ConditionalRenderingExt )
13661         | VkFlags64( PipelineStageFlagBits2KHR::e2CommandPreprocessNv )
13662         | VkFlags64( PipelineStageFlagBits2KHR::e2FragmentShadingRateAttachment )
13663         | VkFlags64( PipelineStageFlagBits2KHR::e2AccelerationStructureBuild )
13664         | VkFlags64( PipelineStageFlagBits2KHR::e2RayTracingShader )
13665         | VkFlags64( PipelineStageFlagBits2KHR::e2FragmentDensityProcessExt )
13666         | VkFlags64( PipelineStageFlagBits2KHR::e2TaskShaderNv )
13667         | VkFlags64( PipelineStageFlagBits2KHR::e2MeshShaderNv )
13668     };
13669   };
13670 
operator |(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)13671   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator|( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
13672   {
13673     return PipelineStageFlags2KHR( bit0 ) | bit1;
13674   }
13675 
operator &(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)13676   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator&( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
13677   {
13678     return PipelineStageFlags2KHR( bit0 ) & bit1;
13679   }
13680 
operator ^(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)13681   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator^( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
13682   {
13683     return PipelineStageFlags2KHR( bit0 ) ^ bit1;
13684   }
13685 
operator ~(PipelineStageFlagBits2KHR bits)13686   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator~( PipelineStageFlagBits2KHR bits ) VULKAN_HPP_NOEXCEPT
13687   {
13688     return ~( PipelineStageFlags2KHR( bits ) );
13689   }
13690 
to_string(PipelineStageFlags2KHR value)13691   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags2KHR value  )
13692   {
13693 
13694     if ( !value ) return "{}";
13695     std::string result;
13696 
13697     if ( value & PipelineStageFlagBits2KHR::e2TopOfPipe ) result += "2TopOfPipe | ";
13698     if ( value & PipelineStageFlagBits2KHR::e2DrawIndirect ) result += "2DrawIndirect | ";
13699     if ( value & PipelineStageFlagBits2KHR::e2VertexInput ) result += "2VertexInput | ";
13700     if ( value & PipelineStageFlagBits2KHR::e2VertexShader ) result += "2VertexShader | ";
13701     if ( value & PipelineStageFlagBits2KHR::e2TessellationControlShader ) result += "2TessellationControlShader | ";
13702     if ( value & PipelineStageFlagBits2KHR::e2TessellationEvaluationShader ) result += "2TessellationEvaluationShader | ";
13703     if ( value & PipelineStageFlagBits2KHR::e2GeometryShader ) result += "2GeometryShader | ";
13704     if ( value & PipelineStageFlagBits2KHR::e2FragmentShader ) result += "2FragmentShader | ";
13705     if ( value & PipelineStageFlagBits2KHR::e2EarlyFragmentTests ) result += "2EarlyFragmentTests | ";
13706     if ( value & PipelineStageFlagBits2KHR::e2LateFragmentTests ) result += "2LateFragmentTests | ";
13707     if ( value & PipelineStageFlagBits2KHR::e2ColorAttachmentOutput ) result += "2ColorAttachmentOutput | ";
13708     if ( value & PipelineStageFlagBits2KHR::e2ComputeShader ) result += "2ComputeShader | ";
13709     if ( value & PipelineStageFlagBits2KHR::e2AllTransfer ) result += "2AllTransfer | ";
13710     if ( value & PipelineStageFlagBits2KHR::e2BottomOfPipe ) result += "2BottomOfPipe | ";
13711     if ( value & PipelineStageFlagBits2KHR::e2Host ) result += "2Host | ";
13712     if ( value & PipelineStageFlagBits2KHR::e2AllGraphics ) result += "2AllGraphics | ";
13713     if ( value & PipelineStageFlagBits2KHR::e2AllCommands ) result += "2AllCommands | ";
13714     if ( value & PipelineStageFlagBits2KHR::e2Copy ) result += "2Copy | ";
13715     if ( value & PipelineStageFlagBits2KHR::e2Resolve ) result += "2Resolve | ";
13716     if ( value & PipelineStageFlagBits2KHR::e2Blit ) result += "2Blit | ";
13717     if ( value & PipelineStageFlagBits2KHR::e2Clear ) result += "2Clear | ";
13718     if ( value & PipelineStageFlagBits2KHR::e2IndexInput ) result += "2IndexInput | ";
13719     if ( value & PipelineStageFlagBits2KHR::e2VertexAttributeInput ) result += "2VertexAttributeInput | ";
13720     if ( value & PipelineStageFlagBits2KHR::e2PreRasterizationShaders ) result += "2PreRasterizationShaders | ";
13721     if ( value & PipelineStageFlagBits2KHR::e2TransformFeedbackExt ) result += "2TransformFeedbackExt | ";
13722     if ( value & PipelineStageFlagBits2KHR::e2ConditionalRenderingExt ) result += "2ConditionalRenderingExt | ";
13723     if ( value & PipelineStageFlagBits2KHR::e2CommandPreprocessNv ) result += "2CommandPreprocessNv | ";
13724     if ( value & PipelineStageFlagBits2KHR::e2FragmentShadingRateAttachment ) result += "2FragmentShadingRateAttachment | ";
13725     if ( value & PipelineStageFlagBits2KHR::e2AccelerationStructureBuild ) result += "2AccelerationStructureBuild | ";
13726     if ( value & PipelineStageFlagBits2KHR::e2RayTracingShader ) result += "2RayTracingShader | ";
13727     if ( value & PipelineStageFlagBits2KHR::e2FragmentDensityProcessExt ) result += "2FragmentDensityProcessExt | ";
13728     if ( value & PipelineStageFlagBits2KHR::e2TaskShaderNv ) result += "2TaskShaderNv | ";
13729     if ( value & PipelineStageFlagBits2KHR::e2MeshShaderNv ) result += "2MeshShaderNv | ";
13730     return "{ " + result.substr(0, result.size() - 3) + " }";
13731   }
13732 
13733   enum class PipelineTessellationStateCreateFlagBits : VkFlags
13734   {};
13735 
to_string(PipelineTessellationStateCreateFlagBits)13736   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
13737   {
13738     return "(void)";
13739   }
13740 
13741   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
13742 
to_string(PipelineTessellationStateCreateFlags)13743   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags  )
13744   {
13745 
13746     return "{}";
13747   }
13748 
13749   enum class PipelineVertexInputStateCreateFlagBits : VkFlags
13750   {};
13751 
to_string(PipelineVertexInputStateCreateFlagBits)13752   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
13753   {
13754     return "(void)";
13755   }
13756 
13757   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
13758 
to_string(PipelineVertexInputStateCreateFlags)13759   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags  )
13760   {
13761 
13762     return "{}";
13763   }
13764 
13765   enum class PipelineViewportStateCreateFlagBits : VkFlags
13766   {};
13767 
to_string(PipelineViewportStateCreateFlagBits)13768   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
13769   {
13770     return "(void)";
13771   }
13772 
13773   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
13774 
to_string(PipelineViewportStateCreateFlags)13775   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags  )
13776   {
13777 
13778     return "{}";
13779   }
13780 
13781   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkFlags
13782   {};
13783 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)13784   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
13785   {
13786     return "(void)";
13787   }
13788 
13789   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
13790 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)13791   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV  )
13792   {
13793 
13794     return "{}";
13795   }
13796 
13797 
13798   using PrivateDataSlotCreateFlagsEXT = Flags<PrivateDataSlotCreateFlagBitsEXT>;
13799 
to_string(PrivateDataSlotCreateFlagsEXT)13800   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT  )
13801   {
13802 
13803     return "{}";
13804   }
13805 
13806 
13807   using QueryControlFlags = Flags<QueryControlFlagBits>;
13808 
13809   template <> struct FlagTraits<QueryControlFlagBits>
13810   {
13811     enum : VkFlags
13812     {
13813       allFlags =
13814           VkFlags( QueryControlFlagBits::ePrecise )
13815     };
13816   };
13817 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)13818   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13819   {
13820     return QueryControlFlags( bit0 ) | bit1;
13821   }
13822 
operator &(QueryControlFlagBits bit0,QueryControlFlagBits bit1)13823   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13824   {
13825     return QueryControlFlags( bit0 ) & bit1;
13826   }
13827 
operator ^(QueryControlFlagBits bit0,QueryControlFlagBits bit1)13828   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13829   {
13830     return QueryControlFlags( bit0 ) ^ bit1;
13831   }
13832 
operator ~(QueryControlFlagBits bits)13833   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT
13834   {
13835     return ~( QueryControlFlags( bits ) );
13836   }
13837 
to_string(QueryControlFlags value)13838   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value  )
13839   {
13840 
13841     if ( !value ) return "{}";
13842     std::string result;
13843 
13844     if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | ";
13845     return "{ " + result.substr(0, result.size() - 3) + " }";
13846   }
13847 
13848 
13849   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
13850 
13851   template <> struct FlagTraits<QueryPipelineStatisticFlagBits>
13852   {
13853     enum : VkFlags
13854     {
13855       allFlags =
13856           VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyVertices )
13857         | VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives )
13858         | VkFlags( QueryPipelineStatisticFlagBits::eVertexShaderInvocations )
13859         | VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderInvocations )
13860         | VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives )
13861         | VkFlags( QueryPipelineStatisticFlagBits::eClippingInvocations )
13862         | VkFlags( QueryPipelineStatisticFlagBits::eClippingPrimitives )
13863         | VkFlags( QueryPipelineStatisticFlagBits::eFragmentShaderInvocations )
13864         | VkFlags( QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches )
13865         | VkFlags( QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations )
13866         | VkFlags( QueryPipelineStatisticFlagBits::eComputeShaderInvocations )
13867     };
13868   };
13869 
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)13870   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13871   {
13872     return QueryPipelineStatisticFlags( bit0 ) | bit1;
13873   }
13874 
operator &(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)13875   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13876   {
13877     return QueryPipelineStatisticFlags( bit0 ) & bit1;
13878   }
13879 
operator ^(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)13880   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13881   {
13882     return QueryPipelineStatisticFlags( bit0 ) ^ bit1;
13883   }
13884 
operator ~(QueryPipelineStatisticFlagBits bits)13885   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) VULKAN_HPP_NOEXCEPT
13886   {
13887     return ~( QueryPipelineStatisticFlags( bits ) );
13888   }
13889 
to_string(QueryPipelineStatisticFlags value)13890   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value  )
13891   {
13892 
13893     if ( !value ) return "{}";
13894     std::string result;
13895 
13896     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | ";
13897     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | ";
13898     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | ";
13899     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | ";
13900     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | ";
13901     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | ";
13902     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | ";
13903     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | ";
13904     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | ";
13905     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | ";
13906     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | ";
13907     return "{ " + result.substr(0, result.size() - 3) + " }";
13908   }
13909 
13910 
13911   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
13912 
to_string(QueryPoolCreateFlags)13913   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags  )
13914   {
13915 
13916     return "{}";
13917   }
13918 
13919 
13920   using QueryResultFlags = Flags<QueryResultFlagBits>;
13921 
13922   template <> struct FlagTraits<QueryResultFlagBits>
13923   {
13924     enum : VkFlags
13925     {
13926       allFlags =
13927           VkFlags( QueryResultFlagBits::e64 )
13928         | VkFlags( QueryResultFlagBits::eWait )
13929         | VkFlags( QueryResultFlagBits::eWithAvailability )
13930         | VkFlags( QueryResultFlagBits::ePartial )
13931     };
13932   };
13933 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)13934   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13935   {
13936     return QueryResultFlags( bit0 ) | bit1;
13937   }
13938 
operator &(QueryResultFlagBits bit0,QueryResultFlagBits bit1)13939   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13940   {
13941     return QueryResultFlags( bit0 ) & bit1;
13942   }
13943 
operator ^(QueryResultFlagBits bit0,QueryResultFlagBits bit1)13944   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13945   {
13946     return QueryResultFlags( bit0 ) ^ bit1;
13947   }
13948 
operator ~(QueryResultFlagBits bits)13949   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT
13950   {
13951     return ~( QueryResultFlags( bits ) );
13952   }
13953 
to_string(QueryResultFlags value)13954   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value  )
13955   {
13956 
13957     if ( !value ) return "{}";
13958     std::string result;
13959 
13960     if ( value & QueryResultFlagBits::e64 ) result += "64 | ";
13961     if ( value & QueryResultFlagBits::eWait ) result += "Wait | ";
13962     if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | ";
13963     if ( value & QueryResultFlagBits::ePartial ) result += "Partial | ";
13964     return "{ " + result.substr(0, result.size() - 3) + " }";
13965   }
13966 
13967 
13968   using QueueFlags = Flags<QueueFlagBits>;
13969 
13970   template <> struct FlagTraits<QueueFlagBits>
13971   {
13972     enum : VkFlags
13973     {
13974       allFlags =
13975           VkFlags( QueueFlagBits::eGraphics )
13976         | VkFlags( QueueFlagBits::eCompute )
13977         | VkFlags( QueueFlagBits::eTransfer )
13978         | VkFlags( QueueFlagBits::eSparseBinding )
13979         | VkFlags( QueueFlagBits::eProtected )
13980     };
13981   };
13982 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)13983   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13984   {
13985     return QueueFlags( bit0 ) | bit1;
13986   }
13987 
operator &(QueueFlagBits bit0,QueueFlagBits bit1)13988   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13989   {
13990     return QueueFlags( bit0 ) & bit1;
13991   }
13992 
operator ^(QueueFlagBits bit0,QueueFlagBits bit1)13993   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13994   {
13995     return QueueFlags( bit0 ) ^ bit1;
13996   }
13997 
operator ~(QueueFlagBits bits)13998   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT
13999   {
14000     return ~( QueueFlags( bits ) );
14001   }
14002 
to_string(QueueFlags value)14003   VULKAN_HPP_INLINE std::string to_string( QueueFlags value  )
14004   {
14005 
14006     if ( !value ) return "{}";
14007     std::string result;
14008 
14009     if ( value & QueueFlagBits::eGraphics ) result += "Graphics | ";
14010     if ( value & QueueFlagBits::eCompute ) result += "Compute | ";
14011     if ( value & QueueFlagBits::eTransfer ) result += "Transfer | ";
14012     if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | ";
14013     if ( value & QueueFlagBits::eProtected ) result += "Protected | ";
14014     return "{ " + result.substr(0, result.size() - 3) + " }";
14015   }
14016 
14017 
14018   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
14019 
14020   template <> struct FlagTraits<RenderPassCreateFlagBits>
14021   {
14022     enum : VkFlags
14023     {
14024       allFlags =
14025           VkFlags( RenderPassCreateFlagBits::eTransformQCOM )
14026     };
14027   };
14028 
operator |(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)14029   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14030   {
14031     return RenderPassCreateFlags( bit0 ) | bit1;
14032   }
14033 
operator &(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)14034   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14035   {
14036     return RenderPassCreateFlags( bit0 ) & bit1;
14037   }
14038 
operator ^(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)14039   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14040   {
14041     return RenderPassCreateFlags( bit0 ) ^ bit1;
14042   }
14043 
operator ~(RenderPassCreateFlagBits bits)14044   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
14045   {
14046     return ~( RenderPassCreateFlags( bits ) );
14047   }
14048 
to_string(RenderPassCreateFlags value)14049   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value  )
14050   {
14051 
14052     if ( !value ) return "{}";
14053     std::string result;
14054 
14055     if ( value & RenderPassCreateFlagBits::eTransformQCOM ) result += "TransformQCOM | ";
14056     return "{ " + result.substr(0, result.size() - 3) + " }";
14057   }
14058 
14059 
14060   using ResolveModeFlags = Flags<ResolveModeFlagBits>;
14061 
14062   template <> struct FlagTraits<ResolveModeFlagBits>
14063   {
14064     enum : VkFlags
14065     {
14066       allFlags =
14067           VkFlags( ResolveModeFlagBits::eNone )
14068         | VkFlags( ResolveModeFlagBits::eSampleZero )
14069         | VkFlags( ResolveModeFlagBits::eAverage )
14070         | VkFlags( ResolveModeFlagBits::eMin )
14071         | VkFlags( ResolveModeFlagBits::eMax )
14072     };
14073   };
14074 
operator |(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)14075   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14076   {
14077     return ResolveModeFlags( bit0 ) | bit1;
14078   }
14079 
operator &(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)14080   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14081   {
14082     return ResolveModeFlags( bit0 ) & bit1;
14083   }
14084 
operator ^(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)14085   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14086   {
14087     return ResolveModeFlags( bit0 ) ^ bit1;
14088   }
14089 
operator ~(ResolveModeFlagBits bits)14090   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
14091   {
14092     return ~( ResolveModeFlags( bits ) );
14093   }
14094 
14095   using ResolveModeFlagsKHR = ResolveModeFlags;
14096 
to_string(ResolveModeFlags value)14097   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value  )
14098   {
14099 
14100     if ( !value ) return "{}";
14101     std::string result;
14102 
14103     if ( value & ResolveModeFlagBits::eSampleZero ) result += "SampleZero | ";
14104     if ( value & ResolveModeFlagBits::eAverage ) result += "Average | ";
14105     if ( value & ResolveModeFlagBits::eMin ) result += "Min | ";
14106     if ( value & ResolveModeFlagBits::eMax ) result += "Max | ";
14107     return "{ " + result.substr(0, result.size() - 3) + " }";
14108   }
14109 
14110 
14111   using SampleCountFlags = Flags<SampleCountFlagBits>;
14112 
14113   template <> struct FlagTraits<SampleCountFlagBits>
14114   {
14115     enum : VkFlags
14116     {
14117       allFlags =
14118           VkFlags( SampleCountFlagBits::e1 )
14119         | VkFlags( SampleCountFlagBits::e2 )
14120         | VkFlags( SampleCountFlagBits::e4 )
14121         | VkFlags( SampleCountFlagBits::e8 )
14122         | VkFlags( SampleCountFlagBits::e16 )
14123         | VkFlags( SampleCountFlagBits::e32 )
14124         | VkFlags( SampleCountFlagBits::e64 )
14125     };
14126   };
14127 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)14128   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14129   {
14130     return SampleCountFlags( bit0 ) | bit1;
14131   }
14132 
operator &(SampleCountFlagBits bit0,SampleCountFlagBits bit1)14133   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14134   {
14135     return SampleCountFlags( bit0 ) & bit1;
14136   }
14137 
operator ^(SampleCountFlagBits bit0,SampleCountFlagBits bit1)14138   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14139   {
14140     return SampleCountFlags( bit0 ) ^ bit1;
14141   }
14142 
operator ~(SampleCountFlagBits bits)14143   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT
14144   {
14145     return ~( SampleCountFlags( bits ) );
14146   }
14147 
to_string(SampleCountFlags value)14148   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value  )
14149   {
14150 
14151     if ( !value ) return "{}";
14152     std::string result;
14153 
14154     if ( value & SampleCountFlagBits::e1 ) result += "1 | ";
14155     if ( value & SampleCountFlagBits::e2 ) result += "2 | ";
14156     if ( value & SampleCountFlagBits::e4 ) result += "4 | ";
14157     if ( value & SampleCountFlagBits::e8 ) result += "8 | ";
14158     if ( value & SampleCountFlagBits::e16 ) result += "16 | ";
14159     if ( value & SampleCountFlagBits::e32 ) result += "32 | ";
14160     if ( value & SampleCountFlagBits::e64 ) result += "64 | ";
14161     return "{ " + result.substr(0, result.size() - 3) + " }";
14162   }
14163 
14164 
14165   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
14166 
14167   template <> struct FlagTraits<SamplerCreateFlagBits>
14168   {
14169     enum : VkFlags
14170     {
14171       allFlags =
14172           VkFlags( SamplerCreateFlagBits::eSubsampledEXT )
14173         | VkFlags( SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT )
14174     };
14175   };
14176 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)14177   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14178   {
14179     return SamplerCreateFlags( bit0 ) | bit1;
14180   }
14181 
operator &(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)14182   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14183   {
14184     return SamplerCreateFlags( bit0 ) & bit1;
14185   }
14186 
operator ^(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)14187   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14188   {
14189     return SamplerCreateFlags( bit0 ) ^ bit1;
14190   }
14191 
operator ~(SamplerCreateFlagBits bits)14192   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
14193   {
14194     return ~( SamplerCreateFlags( bits ) );
14195   }
14196 
to_string(SamplerCreateFlags value)14197   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value  )
14198   {
14199 
14200     if ( !value ) return "{}";
14201     std::string result;
14202 
14203     if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
14204     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | ";
14205     return "{ " + result.substr(0, result.size() - 3) + " }";
14206   }
14207 
14208 #ifdef VK_USE_PLATFORM_SCREEN_QNX
14209   enum class ScreenSurfaceCreateFlagBitsQNX : VkFlags
14210   {};
14211 
to_string(ScreenSurfaceCreateFlagBitsQNX)14212   VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagBitsQNX )
14213   {
14214     return "(void)";
14215   }
14216 
14217   using ScreenSurfaceCreateFlagsQNX = Flags<ScreenSurfaceCreateFlagBitsQNX>;
14218 
to_string(ScreenSurfaceCreateFlagsQNX)14219   VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagsQNX  )
14220   {
14221 
14222     return "{}";
14223   }
14224 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
14225 
14226   enum class SemaphoreCreateFlagBits : VkFlags
14227   {};
14228 
to_string(SemaphoreCreateFlagBits)14229   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
14230   {
14231     return "(void)";
14232   }
14233 
14234   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
14235 
to_string(SemaphoreCreateFlags)14236   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags  )
14237   {
14238 
14239     return "{}";
14240   }
14241 
14242 
14243   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits>;
14244 
14245   template <> struct FlagTraits<SemaphoreImportFlagBits>
14246   {
14247     enum : VkFlags
14248     {
14249       allFlags =
14250           VkFlags( SemaphoreImportFlagBits::eTemporary )
14251     };
14252   };
14253 
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)14254   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14255   {
14256     return SemaphoreImportFlags( bit0 ) | bit1;
14257   }
14258 
operator &(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)14259   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14260   {
14261     return SemaphoreImportFlags( bit0 ) & bit1;
14262   }
14263 
operator ^(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)14264   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14265   {
14266     return SemaphoreImportFlags( bit0 ) ^ bit1;
14267   }
14268 
operator ~(SemaphoreImportFlagBits bits)14269   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
14270   {
14271     return ~( SemaphoreImportFlags( bits ) );
14272   }
14273 
14274   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
14275 
to_string(SemaphoreImportFlags value)14276   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value  )
14277   {
14278 
14279     if ( !value ) return "{}";
14280     std::string result;
14281 
14282     if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | ";
14283     return "{ " + result.substr(0, result.size() - 3) + " }";
14284   }
14285 
14286 
14287   using SemaphoreWaitFlags = Flags<SemaphoreWaitFlagBits>;
14288 
14289   template <> struct FlagTraits<SemaphoreWaitFlagBits>
14290   {
14291     enum : VkFlags
14292     {
14293       allFlags =
14294           VkFlags( SemaphoreWaitFlagBits::eAny )
14295     };
14296   };
14297 
operator |(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)14298   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14299   {
14300     return SemaphoreWaitFlags( bit0 ) | bit1;
14301   }
14302 
operator &(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)14303   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14304   {
14305     return SemaphoreWaitFlags( bit0 ) & bit1;
14306   }
14307 
operator ^(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)14308   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14309   {
14310     return SemaphoreWaitFlags( bit0 ) ^ bit1;
14311   }
14312 
operator ~(SemaphoreWaitFlagBits bits)14313   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT
14314   {
14315     return ~( SemaphoreWaitFlags( bits ) );
14316   }
14317 
14318   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
14319 
to_string(SemaphoreWaitFlags value)14320   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value  )
14321   {
14322 
14323     if ( !value ) return "{}";
14324     std::string result;
14325 
14326     if ( value & SemaphoreWaitFlagBits::eAny ) result += "Any | ";
14327     return "{ " + result.substr(0, result.size() - 3) + " }";
14328   }
14329 
14330 
14331   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
14332 
to_string(ShaderCorePropertiesFlagsAMD)14333   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD  )
14334   {
14335 
14336     return "{}";
14337   }
14338 
14339 
14340   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
14341 
to_string(ShaderModuleCreateFlags)14342   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags  )
14343   {
14344 
14345     return "{}";
14346   }
14347 
14348 
14349   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
14350 
14351   template <> struct FlagTraits<ShaderStageFlagBits>
14352   {
14353     enum : VkFlags
14354     {
14355       allFlags =
14356           VkFlags( ShaderStageFlagBits::eVertex )
14357         | VkFlags( ShaderStageFlagBits::eTessellationControl )
14358         | VkFlags( ShaderStageFlagBits::eTessellationEvaluation )
14359         | VkFlags( ShaderStageFlagBits::eGeometry )
14360         | VkFlags( ShaderStageFlagBits::eFragment )
14361         | VkFlags( ShaderStageFlagBits::eCompute )
14362         | VkFlags( ShaderStageFlagBits::eAllGraphics )
14363         | VkFlags( ShaderStageFlagBits::eAll )
14364         | VkFlags( ShaderStageFlagBits::eRaygenKHR )
14365         | VkFlags( ShaderStageFlagBits::eAnyHitKHR )
14366         | VkFlags( ShaderStageFlagBits::eClosestHitKHR )
14367         | VkFlags( ShaderStageFlagBits::eMissKHR )
14368         | VkFlags( ShaderStageFlagBits::eIntersectionKHR )
14369         | VkFlags( ShaderStageFlagBits::eCallableKHR )
14370         | VkFlags( ShaderStageFlagBits::eTaskNV )
14371         | VkFlags( ShaderStageFlagBits::eMeshNV )
14372     };
14373   };
14374 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)14375   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14376   {
14377     return ShaderStageFlags( bit0 ) | bit1;
14378   }
14379 
operator &(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)14380   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14381   {
14382     return ShaderStageFlags( bit0 ) & bit1;
14383   }
14384 
operator ^(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)14385   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14386   {
14387     return ShaderStageFlags( bit0 ) ^ bit1;
14388   }
14389 
operator ~(ShaderStageFlagBits bits)14390   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
14391   {
14392     return ~( ShaderStageFlags( bits ) );
14393   }
14394 
to_string(ShaderStageFlags value)14395   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value  )
14396   {
14397 
14398     if ( !value ) return "{}";
14399     std::string result;
14400 
14401     if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | ";
14402     if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | ";
14403     if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | ";
14404     if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | ";
14405     if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | ";
14406     if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | ";
14407     if ( value & ShaderStageFlagBits::eRaygenKHR ) result += "RaygenKHR | ";
14408     if ( value & ShaderStageFlagBits::eAnyHitKHR ) result += "AnyHitKHR | ";
14409     if ( value & ShaderStageFlagBits::eClosestHitKHR ) result += "ClosestHitKHR | ";
14410     if ( value & ShaderStageFlagBits::eMissKHR ) result += "MissKHR | ";
14411     if ( value & ShaderStageFlagBits::eIntersectionKHR ) result += "IntersectionKHR | ";
14412     if ( value & ShaderStageFlagBits::eCallableKHR ) result += "CallableKHR | ";
14413     if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | ";
14414     if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | ";
14415     return "{ " + result.substr(0, result.size() - 3) + " }";
14416   }
14417 
14418 
14419   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
14420 
14421   template <> struct FlagTraits<SparseImageFormatFlagBits>
14422   {
14423     enum : VkFlags
14424     {
14425       allFlags =
14426           VkFlags( SparseImageFormatFlagBits::eSingleMiptail )
14427         | VkFlags( SparseImageFormatFlagBits::eAlignedMipSize )
14428         | VkFlags( SparseImageFormatFlagBits::eNonstandardBlockSize )
14429     };
14430   };
14431 
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)14432   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14433   {
14434     return SparseImageFormatFlags( bit0 ) | bit1;
14435   }
14436 
operator &(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)14437   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14438   {
14439     return SparseImageFormatFlags( bit0 ) & bit1;
14440   }
14441 
operator ^(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)14442   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14443   {
14444     return SparseImageFormatFlags( bit0 ) ^ bit1;
14445   }
14446 
operator ~(SparseImageFormatFlagBits bits)14447   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) VULKAN_HPP_NOEXCEPT
14448   {
14449     return ~( SparseImageFormatFlags( bits ) );
14450   }
14451 
to_string(SparseImageFormatFlags value)14452   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value  )
14453   {
14454 
14455     if ( !value ) return "{}";
14456     std::string result;
14457 
14458     if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | ";
14459     if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | ";
14460     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | ";
14461     return "{ " + result.substr(0, result.size() - 3) + " }";
14462   }
14463 
14464 
14465   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
14466 
14467   template <> struct FlagTraits<SparseMemoryBindFlagBits>
14468   {
14469     enum : VkFlags
14470     {
14471       allFlags =
14472           VkFlags( SparseMemoryBindFlagBits::eMetadata )
14473     };
14474   };
14475 
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)14476   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14477   {
14478     return SparseMemoryBindFlags( bit0 ) | bit1;
14479   }
14480 
operator &(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)14481   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14482   {
14483     return SparseMemoryBindFlags( bit0 ) & bit1;
14484   }
14485 
operator ^(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)14486   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14487   {
14488     return SparseMemoryBindFlags( bit0 ) ^ bit1;
14489   }
14490 
operator ~(SparseMemoryBindFlagBits bits)14491   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) VULKAN_HPP_NOEXCEPT
14492   {
14493     return ~( SparseMemoryBindFlags( bits ) );
14494   }
14495 
to_string(SparseMemoryBindFlags value)14496   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value  )
14497   {
14498 
14499     if ( !value ) return "{}";
14500     std::string result;
14501 
14502     if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | ";
14503     return "{ " + result.substr(0, result.size() - 3) + " }";
14504   }
14505 
14506 
14507   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
14508 
14509   template <> struct FlagTraits<StencilFaceFlagBits>
14510   {
14511     enum : VkFlags
14512     {
14513       allFlags =
14514           VkFlags( StencilFaceFlagBits::eFront )
14515         | VkFlags( StencilFaceFlagBits::eBack )
14516         | VkFlags( StencilFaceFlagBits::eFrontAndBack )
14517     };
14518   };
14519 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)14520   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14521   {
14522     return StencilFaceFlags( bit0 ) | bit1;
14523   }
14524 
operator &(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)14525   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14526   {
14527     return StencilFaceFlags( bit0 ) & bit1;
14528   }
14529 
operator ^(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)14530   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14531   {
14532     return StencilFaceFlags( bit0 ) ^ bit1;
14533   }
14534 
operator ~(StencilFaceFlagBits bits)14535   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT
14536   {
14537     return ~( StencilFaceFlags( bits ) );
14538   }
14539 
to_string(StencilFaceFlags value)14540   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value  )
14541   {
14542 
14543     if ( !value ) return "{}";
14544     std::string result;
14545 
14546     if ( value & StencilFaceFlagBits::eFront ) result += "Front | ";
14547     if ( value & StencilFaceFlagBits::eBack ) result += "Back | ";
14548     return "{ " + result.substr(0, result.size() - 3) + " }";
14549   }
14550 
14551 #ifdef VK_USE_PLATFORM_GGP
14552   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkFlags
14553   {};
14554 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)14555   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
14556   {
14557     return "(void)";
14558   }
14559 
14560   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
14561 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)14562   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP  )
14563   {
14564 
14565     return "{}";
14566   }
14567 #endif /*VK_USE_PLATFORM_GGP*/
14568 
14569 
14570   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
14571 
14572   template <> struct FlagTraits<SubgroupFeatureFlagBits>
14573   {
14574     enum : VkFlags
14575     {
14576       allFlags =
14577           VkFlags( SubgroupFeatureFlagBits::eBasic )
14578         | VkFlags( SubgroupFeatureFlagBits::eVote )
14579         | VkFlags( SubgroupFeatureFlagBits::eArithmetic )
14580         | VkFlags( SubgroupFeatureFlagBits::eBallot )
14581         | VkFlags( SubgroupFeatureFlagBits::eShuffle )
14582         | VkFlags( SubgroupFeatureFlagBits::eShuffleRelative )
14583         | VkFlags( SubgroupFeatureFlagBits::eClustered )
14584         | VkFlags( SubgroupFeatureFlagBits::eQuad )
14585         | VkFlags( SubgroupFeatureFlagBits::ePartitionedNV )
14586     };
14587   };
14588 
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)14589   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14590   {
14591     return SubgroupFeatureFlags( bit0 ) | bit1;
14592   }
14593 
operator &(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)14594   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14595   {
14596     return SubgroupFeatureFlags( bit0 ) & bit1;
14597   }
14598 
operator ^(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)14599   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14600   {
14601     return SubgroupFeatureFlags( bit0 ) ^ bit1;
14602   }
14603 
operator ~(SubgroupFeatureFlagBits bits)14604   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
14605   {
14606     return ~( SubgroupFeatureFlags( bits ) );
14607   }
14608 
to_string(SubgroupFeatureFlags value)14609   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value  )
14610   {
14611 
14612     if ( !value ) return "{}";
14613     std::string result;
14614 
14615     if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | ";
14616     if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | ";
14617     if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | ";
14618     if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | ";
14619     if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | ";
14620     if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | ";
14621     if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | ";
14622     if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | ";
14623     if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | ";
14624     return "{ " + result.substr(0, result.size() - 3) + " }";
14625   }
14626 
14627 
14628   using SubmitFlagsKHR = Flags<SubmitFlagBitsKHR>;
14629 
14630   template <> struct FlagTraits<SubmitFlagBitsKHR>
14631   {
14632     enum : VkFlags
14633     {
14634       allFlags =
14635           VkFlags( SubmitFlagBitsKHR::eProtected )
14636     };
14637   };
14638 
operator |(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14639   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator|( SubmitFlagBitsKHR bit0, SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14640   {
14641     return SubmitFlagsKHR( bit0 ) | bit1;
14642   }
14643 
operator &(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14644   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator&( SubmitFlagBitsKHR bit0, SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14645   {
14646     return SubmitFlagsKHR( bit0 ) & bit1;
14647   }
14648 
operator ^(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14649   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator^( SubmitFlagBitsKHR bit0, SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14650   {
14651     return SubmitFlagsKHR( bit0 ) ^ bit1;
14652   }
14653 
operator ~(SubmitFlagBitsKHR bits)14654   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator~( SubmitFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14655   {
14656     return ~( SubmitFlagsKHR( bits ) );
14657   }
14658 
to_string(SubmitFlagsKHR value)14659   VULKAN_HPP_INLINE std::string to_string( SubmitFlagsKHR value  )
14660   {
14661 
14662     if ( !value ) return "{}";
14663     std::string result;
14664 
14665     if ( value & SubmitFlagBitsKHR::eProtected ) result += "Protected | ";
14666     return "{ " + result.substr(0, result.size() - 3) + " }";
14667   }
14668 
14669 
14670   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
14671 
14672   template <> struct FlagTraits<SubpassDescriptionFlagBits>
14673   {
14674     enum : VkFlags
14675     {
14676       allFlags =
14677           VkFlags( SubpassDescriptionFlagBits::ePerViewAttributesNVX )
14678         | VkFlags( SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX )
14679         | VkFlags( SubpassDescriptionFlagBits::eFragmentRegionQCOM )
14680         | VkFlags( SubpassDescriptionFlagBits::eShaderResolveQCOM )
14681     };
14682   };
14683 
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)14684   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14685   {
14686     return SubpassDescriptionFlags( bit0 ) | bit1;
14687   }
14688 
operator &(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)14689   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14690   {
14691     return SubpassDescriptionFlags( bit0 ) & bit1;
14692   }
14693 
operator ^(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)14694   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
14695   {
14696     return SubpassDescriptionFlags( bit0 ) ^ bit1;
14697   }
14698 
operator ~(SubpassDescriptionFlagBits bits)14699   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
14700   {
14701     return ~( SubpassDescriptionFlags( bits ) );
14702   }
14703 
to_string(SubpassDescriptionFlags value)14704   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value  )
14705   {
14706 
14707     if ( !value ) return "{}";
14708     std::string result;
14709 
14710     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | ";
14711     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | ";
14712     if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM ) result += "FragmentRegionQCOM | ";
14713     if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM ) result += "ShaderResolveQCOM | ";
14714     return "{ " + result.substr(0, result.size() - 3) + " }";
14715   }
14716 
14717 
14718   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
14719 
14720   template <> struct FlagTraits<SurfaceCounterFlagBitsEXT>
14721   {
14722     enum : VkFlags
14723     {
14724       allFlags =
14725           VkFlags( SurfaceCounterFlagBitsEXT::eVblank )
14726     };
14727   };
14728 
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)14729   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14730   {
14731     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
14732   }
14733 
operator &(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)14734   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14735   {
14736     return SurfaceCounterFlagsEXT( bit0 ) & bit1;
14737   }
14738 
operator ^(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)14739   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14740   {
14741     return SurfaceCounterFlagsEXT( bit0 ) ^ bit1;
14742   }
14743 
operator ~(SurfaceCounterFlagBitsEXT bits)14744   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
14745   {
14746     return ~( SurfaceCounterFlagsEXT( bits ) );
14747   }
14748 
to_string(SurfaceCounterFlagsEXT value)14749   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value  )
14750   {
14751 
14752     if ( !value ) return "{}";
14753     std::string result;
14754 
14755     if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | ";
14756     return "{ " + result.substr(0, result.size() - 3) + " }";
14757   }
14758 
14759 
14760   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
14761 
14762   template <> struct FlagTraits<SurfaceTransformFlagBitsKHR>
14763   {
14764     enum : VkFlags
14765     {
14766       allFlags =
14767           VkFlags( SurfaceTransformFlagBitsKHR::eIdentity )
14768         | VkFlags( SurfaceTransformFlagBitsKHR::eRotate90 )
14769         | VkFlags( SurfaceTransformFlagBitsKHR::eRotate180 )
14770         | VkFlags( SurfaceTransformFlagBitsKHR::eRotate270 )
14771         | VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirror )
14772         | VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 )
14773         | VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 )
14774         | VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 )
14775         | VkFlags( SurfaceTransformFlagBitsKHR::eInherit )
14776     };
14777   };
14778 
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)14779   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14780   {
14781     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
14782   }
14783 
operator &(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)14784   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14785   {
14786     return SurfaceTransformFlagsKHR( bit0 ) & bit1;
14787   }
14788 
operator ^(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)14789   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14790   {
14791     return SurfaceTransformFlagsKHR( bit0 ) ^ bit1;
14792   }
14793 
operator ~(SurfaceTransformFlagBitsKHR bits)14794   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14795   {
14796     return ~( SurfaceTransformFlagsKHR( bits ) );
14797   }
14798 
to_string(SurfaceTransformFlagsKHR value)14799   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value  )
14800   {
14801 
14802     if ( !value ) return "{}";
14803     std::string result;
14804 
14805     if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | ";
14806     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | ";
14807     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | ";
14808     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | ";
14809     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | ";
14810     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | ";
14811     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | ";
14812     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | ";
14813     if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | ";
14814     return "{ " + result.substr(0, result.size() - 3) + " }";
14815   }
14816 
14817 
14818   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
14819 
14820   template <> struct FlagTraits<SwapchainCreateFlagBitsKHR>
14821   {
14822     enum : VkFlags
14823     {
14824       allFlags =
14825           VkFlags( SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions )
14826         | VkFlags( SwapchainCreateFlagBitsKHR::eProtected )
14827         | VkFlags( SwapchainCreateFlagBitsKHR::eMutableFormat )
14828     };
14829   };
14830 
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)14831   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14832   {
14833     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
14834   }
14835 
operator &(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)14836   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14837   {
14838     return SwapchainCreateFlagsKHR( bit0 ) & bit1;
14839   }
14840 
operator ^(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)14841   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14842   {
14843     return SwapchainCreateFlagsKHR( bit0 ) ^ bit1;
14844   }
14845 
operator ~(SwapchainCreateFlagBitsKHR bits)14846   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14847   {
14848     return ~( SwapchainCreateFlagsKHR( bits ) );
14849   }
14850 
to_string(SwapchainCreateFlagsKHR value)14851   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value  )
14852   {
14853 
14854     if ( !value ) return "{}";
14855     std::string result;
14856 
14857     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
14858     if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | ";
14859     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | ";
14860     return "{ " + result.substr(0, result.size() - 3) + " }";
14861   }
14862 
14863 
14864   using ToolPurposeFlagsEXT = Flags<ToolPurposeFlagBitsEXT>;
14865 
14866   template <> struct FlagTraits<ToolPurposeFlagBitsEXT>
14867   {
14868     enum : VkFlags
14869     {
14870       allFlags =
14871           VkFlags( ToolPurposeFlagBitsEXT::eValidation )
14872         | VkFlags( ToolPurposeFlagBitsEXT::eProfiling )
14873         | VkFlags( ToolPurposeFlagBitsEXT::eTracing )
14874         | VkFlags( ToolPurposeFlagBitsEXT::eAdditionalFeatures )
14875         | VkFlags( ToolPurposeFlagBitsEXT::eModifyingFeatures )
14876         | VkFlags( ToolPurposeFlagBitsEXT::eDebugReporting )
14877         | VkFlags( ToolPurposeFlagBitsEXT::eDebugMarkers )
14878     };
14879   };
14880 
operator |(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)14881   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14882   {
14883     return ToolPurposeFlagsEXT( bit0 ) | bit1;
14884   }
14885 
operator &(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)14886   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14887   {
14888     return ToolPurposeFlagsEXT( bit0 ) & bit1;
14889   }
14890 
operator ^(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)14891   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14892   {
14893     return ToolPurposeFlagsEXT( bit0 ) ^ bit1;
14894   }
14895 
operator ~(ToolPurposeFlagBitsEXT bits)14896   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
14897   {
14898     return ~( ToolPurposeFlagsEXT( bits ) );
14899   }
14900 
to_string(ToolPurposeFlagsEXT value)14901   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value  )
14902   {
14903 
14904     if ( !value ) return "{}";
14905     std::string result;
14906 
14907     if ( value & ToolPurposeFlagBitsEXT::eValidation ) result += "Validation | ";
14908     if ( value & ToolPurposeFlagBitsEXT::eProfiling ) result += "Profiling | ";
14909     if ( value & ToolPurposeFlagBitsEXT::eTracing ) result += "Tracing | ";
14910     if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) result += "AdditionalFeatures | ";
14911     if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) result += "ModifyingFeatures | ";
14912     if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) result += "DebugReporting | ";
14913     if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) result += "DebugMarkers | ";
14914     return "{ " + result.substr(0, result.size() - 3) + " }";
14915   }
14916 
14917   enum class ValidationCacheCreateFlagBitsEXT : VkFlags
14918   {};
14919 
to_string(ValidationCacheCreateFlagBitsEXT)14920   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
14921   {
14922     return "(void)";
14923   }
14924 
14925   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
14926 
to_string(ValidationCacheCreateFlagsEXT)14927   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT  )
14928   {
14929 
14930     return "{}";
14931   }
14932 
14933 #ifdef VK_USE_PLATFORM_VI_NN
14934   enum class ViSurfaceCreateFlagBitsNN : VkFlags
14935   {};
14936 
to_string(ViSurfaceCreateFlagBitsNN)14937   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
14938   {
14939     return "(void)";
14940   }
14941 
14942   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
14943 
to_string(ViSurfaceCreateFlagsNN)14944   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN  )
14945   {
14946 
14947     return "{}";
14948   }
14949 #endif /*VK_USE_PLATFORM_VI_NN*/
14950 
14951 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
14952   enum class WaylandSurfaceCreateFlagBitsKHR : VkFlags
14953   {};
14954 
to_string(WaylandSurfaceCreateFlagBitsKHR)14955   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
14956   {
14957     return "(void)";
14958   }
14959 
14960   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
14961 
to_string(WaylandSurfaceCreateFlagsKHR)14962   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR  )
14963   {
14964 
14965     return "{}";
14966   }
14967 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
14968 
14969 #ifdef VK_USE_PLATFORM_WIN32_KHR
14970   enum class Win32SurfaceCreateFlagBitsKHR : VkFlags
14971   {};
14972 
to_string(Win32SurfaceCreateFlagBitsKHR)14973   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
14974   {
14975     return "(void)";
14976   }
14977 
14978   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
14979 
to_string(Win32SurfaceCreateFlagsKHR)14980   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR  )
14981   {
14982 
14983     return "{}";
14984   }
14985 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14986 
14987 #ifdef VK_USE_PLATFORM_XCB_KHR
14988   enum class XcbSurfaceCreateFlagBitsKHR : VkFlags
14989   {};
14990 
to_string(XcbSurfaceCreateFlagBitsKHR)14991   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
14992   {
14993     return "(void)";
14994   }
14995 
14996   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
14997 
to_string(XcbSurfaceCreateFlagsKHR)14998   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR  )
14999   {
15000 
15001     return "{}";
15002   }
15003 #endif /*VK_USE_PLATFORM_XCB_KHR*/
15004 
15005 #ifdef VK_USE_PLATFORM_XLIB_KHR
15006   enum class XlibSurfaceCreateFlagBitsKHR : VkFlags
15007   {};
15008 
to_string(XlibSurfaceCreateFlagBitsKHR)15009   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
15010   {
15011     return "(void)";
15012   }
15013 
15014   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
15015 
to_string(XlibSurfaceCreateFlagsKHR)15016   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR  )
15017   {
15018 
15019     return "{}";
15020   }
15021 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
15022 } // namespace VULKAN_HPP_NAMESPACE
15023 
15024 #ifndef VULKAN_HPP_NO_EXCEPTIONS
15025 namespace std
15026 {
15027   template <>
15028   struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
15029   {};
15030 }
15031 #endif
15032 
15033 namespace VULKAN_HPP_NAMESPACE
15034 {
15035 #ifndef VULKAN_HPP_NO_EXCEPTIONS
15036   class ErrorCategoryImpl : public std::error_category
15037   {
15038     public:
name() const15039     virtual const char* name() const VULKAN_HPP_NOEXCEPT override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; }
message(int ev) const15040     virtual std::string message(int ev) const override { return to_string(static_cast<Result>(ev)); }
15041   };
15042 
15043   class Error
15044   {
15045     public:
15046     Error() VULKAN_HPP_NOEXCEPT = default;
15047     Error(const Error&) VULKAN_HPP_NOEXCEPT = default;
15048     virtual ~Error() VULKAN_HPP_NOEXCEPT = default;
15049 
15050     virtual const char* what() const VULKAN_HPP_NOEXCEPT = 0;
15051   };
15052 
15053   class LogicError : public Error, public std::logic_error
15054   {
15055     public:
LogicError(const std::string & what)15056     explicit LogicError( const std::string& what )
15057       : Error(), std::logic_error(what) {}
LogicError(char const * what)15058     explicit LogicError( char const * what )
15059       : Error(), std::logic_error(what) {}
15060 
what() const15061     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::logic_error::what(); }
15062   };
15063 
15064   class SystemError : public Error, public std::system_error
15065   {
15066     public:
SystemError(std::error_code ec)15067     SystemError( std::error_code ec )
15068       : Error(), std::system_error(ec) {}
SystemError(std::error_code ec,std::string const & what)15069     SystemError( std::error_code ec, std::string const& what )
15070       : Error(), std::system_error(ec, what) {}
SystemError(std::error_code ec,char const * what)15071     SystemError( std::error_code ec, char const * what )
15072       : Error(), std::system_error(ec, what) {}
SystemError(int ev,std::error_category const & ecat)15073     SystemError( int ev, std::error_category const& ecat )
15074       : Error(), std::system_error(ev, ecat) {}
SystemError(int ev,std::error_category const & ecat,std::string const & what)15075     SystemError( int ev, std::error_category const& ecat, std::string const& what)
15076       : Error(), std::system_error(ev, ecat, what) {}
SystemError(int ev,std::error_category const & ecat,char const * what)15077     SystemError( int ev, std::error_category const& ecat, char const * what)
15078       : Error(), std::system_error(ev, ecat, what) {}
15079 
what() const15080     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::system_error::what(); }
15081   };
15082 
errorCategory()15083   VULKAN_HPP_INLINE const std::error_category& errorCategory() VULKAN_HPP_NOEXCEPT
15084   {
15085     static ErrorCategoryImpl instance;
15086     return instance;
15087   }
15088 
make_error_code(Result e)15089   VULKAN_HPP_INLINE std::error_code make_error_code(Result e) VULKAN_HPP_NOEXCEPT
15090   {
15091     return std::error_code(static_cast<int>(e), errorCategory());
15092   }
15093 
make_error_condition(Result e)15094   VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e) VULKAN_HPP_NOEXCEPT
15095   {
15096     return std::error_condition(static_cast<int>(e), errorCategory());
15097   }
15098 
15099   class OutOfHostMemoryError : public SystemError
15100   {
15101   public:
OutOfHostMemoryError(std::string const & message)15102     OutOfHostMemoryError( std::string const& message )
15103       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
OutOfHostMemoryError(char const * message)15104     OutOfHostMemoryError( char const * message )
15105       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
15106   };
15107 
15108   class OutOfDeviceMemoryError : public SystemError
15109   {
15110   public:
OutOfDeviceMemoryError(std::string const & message)15111     OutOfDeviceMemoryError( std::string const& message )
15112       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
OutOfDeviceMemoryError(char const * message)15113     OutOfDeviceMemoryError( char const * message )
15114       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
15115   };
15116 
15117   class InitializationFailedError : public SystemError
15118   {
15119   public:
InitializationFailedError(std::string const & message)15120     InitializationFailedError( std::string const& message )
15121       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
InitializationFailedError(char const * message)15122     InitializationFailedError( char const * message )
15123       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
15124   };
15125 
15126   class DeviceLostError : public SystemError
15127   {
15128   public:
DeviceLostError(std::string const & message)15129     DeviceLostError( std::string const& message )
15130       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
DeviceLostError(char const * message)15131     DeviceLostError( char const * message )
15132       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
15133   };
15134 
15135   class MemoryMapFailedError : public SystemError
15136   {
15137   public:
MemoryMapFailedError(std::string const & message)15138     MemoryMapFailedError( std::string const& message )
15139       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
MemoryMapFailedError(char const * message)15140     MemoryMapFailedError( char const * message )
15141       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
15142   };
15143 
15144   class LayerNotPresentError : public SystemError
15145   {
15146   public:
LayerNotPresentError(std::string const & message)15147     LayerNotPresentError( std::string const& message )
15148       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
LayerNotPresentError(char const * message)15149     LayerNotPresentError( char const * message )
15150       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
15151   };
15152 
15153   class ExtensionNotPresentError : public SystemError
15154   {
15155   public:
ExtensionNotPresentError(std::string const & message)15156     ExtensionNotPresentError( std::string const& message )
15157       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
ExtensionNotPresentError(char const * message)15158     ExtensionNotPresentError( char const * message )
15159       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
15160   };
15161 
15162   class FeatureNotPresentError : public SystemError
15163   {
15164   public:
FeatureNotPresentError(std::string const & message)15165     FeatureNotPresentError( std::string const& message )
15166       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
FeatureNotPresentError(char const * message)15167     FeatureNotPresentError( char const * message )
15168       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
15169   };
15170 
15171   class IncompatibleDriverError : public SystemError
15172   {
15173   public:
IncompatibleDriverError(std::string const & message)15174     IncompatibleDriverError( std::string const& message )
15175       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
IncompatibleDriverError(char const * message)15176     IncompatibleDriverError( char const * message )
15177       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
15178   };
15179 
15180   class TooManyObjectsError : public SystemError
15181   {
15182   public:
TooManyObjectsError(std::string const & message)15183     TooManyObjectsError( std::string const& message )
15184       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
TooManyObjectsError(char const * message)15185     TooManyObjectsError( char const * message )
15186       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
15187   };
15188 
15189   class FormatNotSupportedError : public SystemError
15190   {
15191   public:
FormatNotSupportedError(std::string const & message)15192     FormatNotSupportedError( std::string const& message )
15193       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
FormatNotSupportedError(char const * message)15194     FormatNotSupportedError( char const * message )
15195       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
15196   };
15197 
15198   class FragmentedPoolError : public SystemError
15199   {
15200   public:
FragmentedPoolError(std::string const & message)15201     FragmentedPoolError( std::string const& message )
15202       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
FragmentedPoolError(char const * message)15203     FragmentedPoolError( char const * message )
15204       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
15205   };
15206 
15207   class UnknownError : public SystemError
15208   {
15209   public:
UnknownError(std::string const & message)15210     UnknownError( std::string const& message )
15211       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
UnknownError(char const * message)15212     UnknownError( char const * message )
15213       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
15214   };
15215 
15216   class OutOfPoolMemoryError : public SystemError
15217   {
15218   public:
OutOfPoolMemoryError(std::string const & message)15219     OutOfPoolMemoryError( std::string const& message )
15220       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
OutOfPoolMemoryError(char const * message)15221     OutOfPoolMemoryError( char const * message )
15222       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
15223   };
15224 
15225   class InvalidExternalHandleError : public SystemError
15226   {
15227   public:
InvalidExternalHandleError(std::string const & message)15228     InvalidExternalHandleError( std::string const& message )
15229       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
InvalidExternalHandleError(char const * message)15230     InvalidExternalHandleError( char const * message )
15231       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
15232   };
15233 
15234   class FragmentationError : public SystemError
15235   {
15236   public:
FragmentationError(std::string const & message)15237     FragmentationError( std::string const& message )
15238       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
FragmentationError(char const * message)15239     FragmentationError( char const * message )
15240       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
15241   };
15242 
15243   class InvalidOpaqueCaptureAddressError : public SystemError
15244   {
15245   public:
InvalidOpaqueCaptureAddressError(std::string const & message)15246     InvalidOpaqueCaptureAddressError( std::string const& message )
15247       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
InvalidOpaqueCaptureAddressError(char const * message)15248     InvalidOpaqueCaptureAddressError( char const * message )
15249       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
15250   };
15251 
15252   class SurfaceLostKHRError : public SystemError
15253   {
15254   public:
SurfaceLostKHRError(std::string const & message)15255     SurfaceLostKHRError( std::string const& message )
15256       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
SurfaceLostKHRError(char const * message)15257     SurfaceLostKHRError( char const * message )
15258       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
15259   };
15260 
15261   class NativeWindowInUseKHRError : public SystemError
15262   {
15263   public:
NativeWindowInUseKHRError(std::string const & message)15264     NativeWindowInUseKHRError( std::string const& message )
15265       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
NativeWindowInUseKHRError(char const * message)15266     NativeWindowInUseKHRError( char const * message )
15267       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
15268   };
15269 
15270   class OutOfDateKHRError : public SystemError
15271   {
15272   public:
OutOfDateKHRError(std::string const & message)15273     OutOfDateKHRError( std::string const& message )
15274       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
OutOfDateKHRError(char const * message)15275     OutOfDateKHRError( char const * message )
15276       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
15277   };
15278 
15279   class IncompatibleDisplayKHRError : public SystemError
15280   {
15281   public:
IncompatibleDisplayKHRError(std::string const & message)15282     IncompatibleDisplayKHRError( std::string const& message )
15283       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
IncompatibleDisplayKHRError(char const * message)15284     IncompatibleDisplayKHRError( char const * message )
15285       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
15286   };
15287 
15288   class ValidationFailedEXTError : public SystemError
15289   {
15290   public:
ValidationFailedEXTError(std::string const & message)15291     ValidationFailedEXTError( std::string const& message )
15292       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
ValidationFailedEXTError(char const * message)15293     ValidationFailedEXTError( char const * message )
15294       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
15295   };
15296 
15297   class InvalidShaderNVError : public SystemError
15298   {
15299   public:
InvalidShaderNVError(std::string const & message)15300     InvalidShaderNVError( std::string const& message )
15301       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
InvalidShaderNVError(char const * message)15302     InvalidShaderNVError( char const * message )
15303       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
15304   };
15305 
15306   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
15307   {
15308   public:
InvalidDrmFormatModifierPlaneLayoutEXTError(std::string const & message)15309     InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message )
15310       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
InvalidDrmFormatModifierPlaneLayoutEXTError(char const * message)15311     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
15312       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
15313   };
15314 
15315   class NotPermittedEXTError : public SystemError
15316   {
15317   public:
NotPermittedEXTError(std::string const & message)15318     NotPermittedEXTError( std::string const& message )
15319       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
NotPermittedEXTError(char const * message)15320     NotPermittedEXTError( char const * message )
15321       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
15322   };
15323 
15324 #ifdef VK_USE_PLATFORM_WIN32_KHR
15325   class FullScreenExclusiveModeLostEXTError : public SystemError
15326   {
15327   public:
FullScreenExclusiveModeLostEXTError(std::string const & message)15328     FullScreenExclusiveModeLostEXTError( std::string const& message )
15329       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
FullScreenExclusiveModeLostEXTError(char const * message)15330     FullScreenExclusiveModeLostEXTError( char const * message )
15331       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
15332   };
15333 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
15334 
throwResultException(Result result,char const * message)15335   [[noreturn]] static void throwResultException( Result result, char const * message )
15336   {
15337     switch ( result )
15338     {
15339       case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
15340       case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
15341       case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
15342       case Result::eErrorDeviceLost: throw DeviceLostError( message );
15343       case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
15344       case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
15345       case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
15346       case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
15347       case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
15348       case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
15349       case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
15350       case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
15351       case Result::eErrorUnknown: throw UnknownError( message );
15352       case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
15353       case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
15354       case Result::eErrorFragmentation: throw FragmentationError( message );
15355       case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
15356       case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
15357       case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
15358       case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
15359       case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
15360       case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
15361       case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
15362       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
15363       case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
15364 #ifdef VK_USE_PLATFORM_WIN32_KHR
15365       case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
15366 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
15367       default: throw SystemError( make_error_code( result ) );
15368     }
15369   }
15370 #endif
15371 
ignore(T const &)15372   template <typename T> void ignore(T const&) VULKAN_HPP_NOEXCEPT {}
15373 
15374   template <typename T>
15375   struct ResultValue
15376   {
15377 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue15378     ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(v)))
15379 #else
15380     ResultValue( Result r, T & v )
15381 #endif
15382       : result( r )
15383       , value( v )
15384     {}
15385 
15386 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue15387     ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(std::move(v))))
15388 #else
15389     ResultValue( Result r, T && v )
15390 #endif
15391       : result( r )
15392       , value( std::move( v ) )
15393     {}
15394 
15395     Result  result;
15396     T       value;
15397 
operator std::tuple<Result&,T&>VULKAN_HPP_NAMESPACE::ResultValue15398     operator std::tuple<Result&, T&>() VULKAN_HPP_NOEXCEPT { return std::tuple<Result&, T&>(result, value); }
15399 
15400 #if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
15401     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::ResultValue15402     operator T const& () const & VULKAN_HPP_NOEXCEPT
15403     {
15404       return value;
15405     }
15406 
15407     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T&VULKAN_HPP_NAMESPACE::ResultValue15408     operator T& () & VULKAN_HPP_NOEXCEPT
15409     {
15410       return value;
15411     }
15412 
15413     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::ResultValue15414     operator T const&& () const && VULKAN_HPP_NOEXCEPT
15415     {
15416       return std::move( value );
15417     }
15418 
15419     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T&&VULKAN_HPP_NAMESPACE::ResultValue15420     operator T&& () && VULKAN_HPP_NOEXCEPT
15421     {
15422       return std::move( value );
15423     }
15424 #endif
15425   };
15426 
15427 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
15428   template <typename Type, typename Dispatch>
15429   struct ResultValue<UniqueHandle<Type,Dispatch>>
15430   {
15431 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue15432     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v) VULKAN_HPP_NOEXCEPT
15433 #else
15434     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v)
15435 #endif
15436       : result(r)
15437       , value(std::move(v))
15438     {}
15439 
asTupleVULKAN_HPP_NAMESPACE::ResultValue15440     std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
15441     {
15442       return std::make_tuple( result, std::move( value ) );
15443     }
15444 
15445 #  if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
15446     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::ResultValue15447     operator UniqueHandle<Type, Dispatch>& () & VULKAN_HPP_NOEXCEPT
15448     {
15449       return value;
15450     }
15451 
15452     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::ResultValue15453     operator UniqueHandle<Type, Dispatch>() VULKAN_HPP_NOEXCEPT
15454     {
15455       return std::move(value);
15456     }
15457 #  endif
15458 
15459     Result                        result;
15460     UniqueHandle<Type, Dispatch>  value;
15461   };
15462 
15463   template <typename Type, typename Dispatch>
15464   struct ResultValue<std::vector<UniqueHandle<Type, Dispatch>>>
15465   {
15466 #  ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue15467     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v ) VULKAN_HPP_NOEXCEPT
15468 #  else
15469     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v )
15470 #  endif
15471       : result( r )
15472       , value( std::move( v ) )
15473     {}
15474 
15475     Result                                    result;
15476     std::vector<UniqueHandle<Type, Dispatch>> value;
15477 
operator std::tuple<Result&,std::vector<UniqueHandle<Type,Dispatch>>&>VULKAN_HPP_NAMESPACE::ResultValue15478     operator std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>() VULKAN_HPP_NOEXCEPT
15479     {
15480       return std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>( result, value );
15481     }
15482   };
15483 #endif
15484 
15485   template <typename T>
15486   struct ResultValueType
15487   {
15488 #ifdef VULKAN_HPP_NO_EXCEPTIONS
15489     typedef ResultValue<T>  type;
15490 #else
15491     typedef T               type;
15492 #endif
15493   };
15494 
15495   template <>
15496   struct ResultValueType<void>
15497   {
15498 #ifdef VULKAN_HPP_NO_EXCEPTIONS
15499     typedef Result type;
15500 #else
15501     typedef void   type;
15502 #endif
15503   };
15504 
createResultValue(Result result,char const * message)15505   VULKAN_HPP_INLINE ResultValueType<void>::type createResultValue( Result result, char const * message )
15506   {
15507 #ifdef VULKAN_HPP_NO_EXCEPTIONS
15508     ignore(message);
15509     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
15510     return result;
15511 #else
15512     if ( result != Result::eSuccess )
15513     {
15514       throwResultException( result, message );
15515     }
15516 #endif
15517   }
15518 
15519   template <typename T>
createResultValue(Result result,T & data,char const * message)15520   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValue( Result result, T & data, char const * message )
15521   {
15522 #ifdef VULKAN_HPP_NO_EXCEPTIONS
15523     ignore(message);
15524     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
15525     return ResultValue<T>( result, std::move( data ) );
15526 #else
15527     if ( result != Result::eSuccess )
15528     {
15529       throwResultException( result, message );
15530     }
15531     return std::move( data );
15532 #endif
15533   }
15534 
createResultValue(Result result,char const * message,std::initializer_list<Result> successCodes)15535   VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list<Result> successCodes )
15536   {
15537 #ifdef VULKAN_HPP_NO_EXCEPTIONS
15538     ignore(message);
15539     ignore(successCodes);   // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
15540     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
15541 #else
15542     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
15543     {
15544       throwResultException( result, message );
15545     }
15546 #endif
15547     return result;
15548   }
15549 
15550   template <typename T>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes)15551   VULKAN_HPP_INLINE ResultValue<T> createResultValue( Result result, T & data, char const * message, std::initializer_list<Result> successCodes )
15552   {
15553 #ifdef VULKAN_HPP_NO_EXCEPTIONS
15554     ignore(message);
15555     ignore(successCodes);   // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
15556     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
15557 #else
15558     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
15559     {
15560       throwResultException( result, message );
15561     }
15562 #endif
15563     return ResultValue<T>( result, data );
15564   }
15565 
15566 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15567   template <typename T, typename D>
createResultValue(Result result,T & data,char const * message,typename UniqueHandleTraits<T,D>::deleter const & deleter)15568   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T,D>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T,D>::deleter const& deleter )
15569   {
15570 #ifdef VULKAN_HPP_NO_EXCEPTIONS
15571     ignore(message);
15572     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
15573     return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
15574 #else
15575     if ( result != Result::eSuccess )
15576     {
15577       throwResultException( result, message );
15578     }
15579     return UniqueHandle<T,D>(data, deleter);
15580 #endif
15581   }
15582 
15583   template <typename T, typename D>
15584   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)15585                     createResultValue( Result                                             result,
15586                                        T &                                                data,
15587                                        char const *                                       message,
15588                                        std::initializer_list<Result>                      successCodes,
15589                                        typename UniqueHandleTraits<T, D>::deleter const & deleter )
15590   {
15591 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
15592     ignore( message );
15593     ignore(successCodes);   // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
15594     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
15595 #  else
15596     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
15597     {
15598       throwResultException( result, message );
15599     }
15600 #  endif
15601     return ResultValue<UniqueHandle<T, D>>( result, UniqueHandle<T, D>( data, deleter ) );
15602   }
15603 
15604   template <typename T, typename D>
15605   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<T, D>>>::type
createResultValue(Result result,std::vector<UniqueHandle<T,D>> && data,char const * message)15606     createResultValue( Result result, std::vector<UniqueHandle<T, D>> && data, char const * message )
15607   {
15608 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
15609     ignore( message );
15610     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
15611     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
15612 #  else
15613     if ( result != Result::eSuccess )
15614     {
15615       throwResultException( result, message );
15616     }
15617     return std::move( data );
15618 #  endif
15619   }
15620 
15621   template <typename T, typename D>
15622   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)15623                     createResultValue( Result                             result,
15624                                        std::vector<UniqueHandle<T, D>> && data,
15625                                        char const *                       message,
15626                                        std::initializer_list<Result>      successCodes )
15627   {
15628 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
15629     ignore( message );
15630     ignore(successCodes);   // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
15631     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
15632 #  else
15633     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
15634     {
15635       throwResultException( result, message );
15636     }
15637 #  endif
15638     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
15639   }
15640 #endif
15641 
15642   struct AabbPositionsKHR
15643   {
15644 
15645 
15646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR15647     VULKAN_HPP_CONSTEXPR AabbPositionsKHR(float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {}) VULKAN_HPP_NOEXCEPT
15648     : minX( minX_ ), minY( minY_ ), minZ( minZ_ ), maxX( maxX_ ), maxY( maxY_ ), maxZ( maxZ_ )
15649     {}
15650 
15651     VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15652 
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR15653     AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15654       : AabbPositionsKHR( *reinterpret_cast<AabbPositionsKHR const *>( &rhs ) )
15655     {}
15656 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15657 
15658     VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15659 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR15660     AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15661     {
15662       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AabbPositionsKHR const *>( &rhs );
15663       return *this;
15664     }
15665 
setMinXVULKAN_HPP_NAMESPACE::AabbPositionsKHR15666     AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT
15667     {
15668       minX = minX_;
15669       return *this;
15670     }
15671 
setMinYVULKAN_HPP_NAMESPACE::AabbPositionsKHR15672     AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT
15673     {
15674       minY = minY_;
15675       return *this;
15676     }
15677 
setMinZVULKAN_HPP_NAMESPACE::AabbPositionsKHR15678     AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT
15679     {
15680       minZ = minZ_;
15681       return *this;
15682     }
15683 
setMaxXVULKAN_HPP_NAMESPACE::AabbPositionsKHR15684     AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT
15685     {
15686       maxX = maxX_;
15687       return *this;
15688     }
15689 
setMaxYVULKAN_HPP_NAMESPACE::AabbPositionsKHR15690     AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT
15691     {
15692       maxY = maxY_;
15693       return *this;
15694     }
15695 
setMaxZVULKAN_HPP_NAMESPACE::AabbPositionsKHR15696     AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT
15697     {
15698       maxZ = maxZ_;
15699       return *this;
15700     }
15701 
15702 
operator VkAabbPositionsKHR const&VULKAN_HPP_NAMESPACE::AabbPositionsKHR15703     operator VkAabbPositionsKHR const&() const VULKAN_HPP_NOEXCEPT
15704     {
15705       return *reinterpret_cast<const VkAabbPositionsKHR*>( this );
15706     }
15707 
operator VkAabbPositionsKHR&VULKAN_HPP_NAMESPACE::AabbPositionsKHR15708     operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
15709     {
15710       return *reinterpret_cast<VkAabbPositionsKHR*>( this );
15711     }
15712 
15713 
15714 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15715     auto operator<=>( AabbPositionsKHR const& ) const = default;
15716 #else
operator ==VULKAN_HPP_NAMESPACE::AabbPositionsKHR15717     bool operator==( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15718     {
15719       return ( minX == rhs.minX )
15720           && ( minY == rhs.minY )
15721           && ( minZ == rhs.minZ )
15722           && ( maxX == rhs.maxX )
15723           && ( maxY == rhs.maxY )
15724           && ( maxZ == rhs.maxZ );
15725     }
15726 
operator !=VULKAN_HPP_NAMESPACE::AabbPositionsKHR15727     bool operator!=( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15728     {
15729       return !operator==( rhs );
15730     }
15731 #endif
15732 
15733 
15734 
15735   public:
15736     float minX = {};
15737     float minY = {};
15738     float minZ = {};
15739     float maxX = {};
15740     float maxY = {};
15741     float maxZ = {};
15742 
15743   };
15744   static_assert( sizeof( AabbPositionsKHR ) == sizeof( VkAabbPositionsKHR ), "struct and wrapper have different size!" );
15745   static_assert( std::is_standard_layout<AabbPositionsKHR>::value, "struct wrapper is not a standard layout!" );
15746   using AabbPositionsNV = AabbPositionsKHR;
15747 
15748   class AccelerationStructureKHR
15749   {
15750   public:
15751     using CType = VkAccelerationStructureKHR;
15752 
15753     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR;
15754     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
15755 
15756   public:
AccelerationStructureKHR()15757     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() VULKAN_HPP_NOEXCEPT
15758       : m_accelerationStructureKHR(VK_NULL_HANDLE)
15759     {}
15760 
AccelerationStructureKHR(std::nullptr_t)15761     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15762       : m_accelerationStructureKHR(VK_NULL_HANDLE)
15763     {}
15764 
AccelerationStructureKHR(VkAccelerationStructureKHR accelerationStructureKHR)15765     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT
15766       : m_accelerationStructureKHR( accelerationStructureKHR )
15767     {}
15768 
15769 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkAccelerationStructureKHR accelerationStructureKHR)15770     AccelerationStructureKHR & operator=(VkAccelerationStructureKHR accelerationStructureKHR) VULKAN_HPP_NOEXCEPT
15771     {
15772       m_accelerationStructureKHR = accelerationStructureKHR;
15773       return *this;
15774     }
15775 #endif
15776 
operator =(std::nullptr_t)15777     AccelerationStructureKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15778     {
15779       m_accelerationStructureKHR = VK_NULL_HANDLE;
15780       return *this;
15781     }
15782 
15783 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15784     auto operator<=>( AccelerationStructureKHR const& ) const = default;
15785 #else
operator ==(AccelerationStructureKHR const & rhs) const15786     bool operator==( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15787     {
15788       return m_accelerationStructureKHR == rhs.m_accelerationStructureKHR;
15789     }
15790 
operator !=(AccelerationStructureKHR const & rhs) const15791     bool operator!=(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15792     {
15793       return m_accelerationStructureKHR != rhs.m_accelerationStructureKHR;
15794     }
15795 
operator <(AccelerationStructureKHR const & rhs) const15796     bool operator<(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15797     {
15798       return m_accelerationStructureKHR < rhs.m_accelerationStructureKHR;
15799     }
15800 #endif
15801 
operator VkAccelerationStructureKHR() const15802     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT
15803     {
15804       return m_accelerationStructureKHR;
15805     }
15806 
operator bool() const15807     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15808     {
15809       return m_accelerationStructureKHR != VK_NULL_HANDLE;
15810     }
15811 
operator !() const15812     bool operator!() const VULKAN_HPP_NOEXCEPT
15813     {
15814       return m_accelerationStructureKHR == VK_NULL_HANDLE;
15815     }
15816 
15817   private:
15818     VkAccelerationStructureKHR m_accelerationStructureKHR;
15819   };
15820   static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ), "handle and wrapper have different size!" );
15821 
15822   template <>
15823   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eAccelerationStructureKHR>
15824   {
15825     using type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
15826   };
15827 
15828   template <>
15829   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR>
15830   {
15831     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
15832   };
15833 
15834 
15835   template <>
15836   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR>
15837   {
15838     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
15839   };
15840 
15841 
15842   template <>
15843   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
15844   {
15845     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
15846   };
15847 
15848   union DeviceOrHostAddressConstKHR
15849   {
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)15850     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const& rhs ) VULKAN_HPP_NOEXCEPT
15851     {
15852       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
15853     }
15854 
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )15855     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
15856       : deviceAddress( deviceAddress_ )
15857     {}
15858 
DeviceOrHostAddressConstKHR(const void * hostAddress_)15859     DeviceOrHostAddressConstKHR( const void* hostAddress_ )
15860       : hostAddress( hostAddress_ )
15861     {}
15862 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)15863     DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
15864     {
15865       deviceAddress = deviceAddress_;
15866       return *this;
15867     }
15868 
setHostAddress(const void * hostAddress_)15869     DeviceOrHostAddressConstKHR & setHostAddress( const void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
15870     {
15871       hostAddress = hostAddress_;
15872       return *this;
15873     }
15874 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)15875     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15876     {
15877       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
15878       return *this;
15879     }
15880 
operator VkDeviceOrHostAddressConstKHR const&() const15881     operator VkDeviceOrHostAddressConstKHR const&() const
15882     {
15883       return *reinterpret_cast<const VkDeviceOrHostAddressConstKHR*>(this);
15884     }
15885 
operator VkDeviceOrHostAddressConstKHR&()15886     operator VkDeviceOrHostAddressConstKHR &()
15887     {
15888       return *reinterpret_cast<VkDeviceOrHostAddressConstKHR*>(this);
15889     }
15890 
15891 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
15892     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
15893     const void* hostAddress;
15894 #else
15895     VkDeviceAddress deviceAddress;
15896     const void* hostAddress;
15897 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
15898   };
15899 
15900   struct AccelerationStructureGeometryTrianglesDataKHR
15901   {
15902     static const bool allowDuplicate = false;
15903     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
15904 
15905 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15906     AccelerationStructureGeometryTrianglesDataKHR(VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, uint32_t maxVertex_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {}) VULKAN_HPP_NOEXCEPT
15907     : vertexFormat( vertexFormat_ ), vertexData( vertexData_ ), vertexStride( vertexStride_ ), maxVertex( maxVertex_ ), indexType( indexType_ ), indexData( indexData_ ), transformData( transformData_ )
15908     {}
15909 
15910     AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15911 
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15912     AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15913       : AccelerationStructureGeometryTrianglesDataKHR( *reinterpret_cast<AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs ) )
15914     {}
15915 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15916 
15917     AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15918 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15919     AccelerationStructureGeometryTrianglesDataKHR & operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15920     {
15921       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs );
15922       return *this;
15923     }
15924 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15925     AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15926     {
15927       pNext = pNext_;
15928       return *this;
15929     }
15930 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15931     AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
15932     {
15933       vertexFormat = vertexFormat_;
15934       return *this;
15935     }
15936 
setVertexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15937     AccelerationStructureGeometryTrianglesDataKHR & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
15938     {
15939       vertexData = vertexData_;
15940       return *this;
15941     }
15942 
setVertexStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15943     AccelerationStructureGeometryTrianglesDataKHR & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
15944     {
15945       vertexStride = vertexStride_;
15946       return *this;
15947     }
15948 
setMaxVertexVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15949     AccelerationStructureGeometryTrianglesDataKHR & setMaxVertex( uint32_t maxVertex_ ) VULKAN_HPP_NOEXCEPT
15950     {
15951       maxVertex = maxVertex_;
15952       return *this;
15953     }
15954 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15955     AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
15956     {
15957       indexType = indexType_;
15958       return *this;
15959     }
15960 
setIndexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15961     AccelerationStructureGeometryTrianglesDataKHR & setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
15962     {
15963       indexData = indexData_;
15964       return *this;
15965     }
15966 
setTransformDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15967     AccelerationStructureGeometryTrianglesDataKHR & setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
15968     {
15969       transformData = transformData_;
15970       return *this;
15971     }
15972 
15973 
operator VkAccelerationStructureGeometryTrianglesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15974     operator VkAccelerationStructureGeometryTrianglesDataKHR const&() const VULKAN_HPP_NOEXCEPT
15975     {
15976       return *reinterpret_cast<const VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
15977     }
15978 
operator VkAccelerationStructureGeometryTrianglesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR15979     operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
15980     {
15981       return *reinterpret_cast<VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
15982     }
15983 
15984 
15985 
15986 
15987   public:
15988     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
15989     const void* pNext = {};
15990     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
15991     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
15992     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
15993     uint32_t maxVertex = {};
15994     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
15995     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {};
15996     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {};
15997 
15998   };
15999   static_assert( sizeof( AccelerationStructureGeometryTrianglesDataKHR ) == sizeof( VkAccelerationStructureGeometryTrianglesDataKHR ), "struct and wrapper have different size!" );
16000   static_assert( std::is_standard_layout<AccelerationStructureGeometryTrianglesDataKHR>::value, "struct wrapper is not a standard layout!" );
16001 
16002   template <>
16003   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryTrianglesDataKHR>
16004   {
16005     using Type = AccelerationStructureGeometryTrianglesDataKHR;
16006   };
16007 
16008   struct AccelerationStructureGeometryAabbsDataKHR
16009   {
16010     static const bool allowDuplicate = false;
16011     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
16012 
16013 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR16014     AccelerationStructureGeometryAabbsDataKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}) VULKAN_HPP_NOEXCEPT
16015     : data( data_ ), stride( stride_ )
16016     {}
16017 
16018     AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16019 
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR16020     AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16021       : AccelerationStructureGeometryAabbsDataKHR( *reinterpret_cast<AccelerationStructureGeometryAabbsDataKHR const *>( &rhs ) )
16022     {}
16023 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16024 
16025     AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16026 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR16027     AccelerationStructureGeometryAabbsDataKHR & operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16028     {
16029       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const *>( &rhs );
16030       return *this;
16031     }
16032 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR16033     AccelerationStructureGeometryAabbsDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16034     {
16035       pNext = pNext_;
16036       return *this;
16037     }
16038 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR16039     AccelerationStructureGeometryAabbsDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
16040     {
16041       data = data_;
16042       return *this;
16043     }
16044 
setStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR16045     AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
16046     {
16047       stride = stride_;
16048       return *this;
16049     }
16050 
16051 
operator VkAccelerationStructureGeometryAabbsDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR16052     operator VkAccelerationStructureGeometryAabbsDataKHR const&() const VULKAN_HPP_NOEXCEPT
16053     {
16054       return *reinterpret_cast<const VkAccelerationStructureGeometryAabbsDataKHR*>( this );
16055     }
16056 
operator VkAccelerationStructureGeometryAabbsDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR16057     operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
16058     {
16059       return *reinterpret_cast<VkAccelerationStructureGeometryAabbsDataKHR*>( this );
16060     }
16061 
16062 
16063 
16064 
16065   public:
16066     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
16067     const void* pNext = {};
16068     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
16069     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
16070 
16071   };
16072   static_assert( sizeof( AccelerationStructureGeometryAabbsDataKHR ) == sizeof( VkAccelerationStructureGeometryAabbsDataKHR ), "struct and wrapper have different size!" );
16073   static_assert( std::is_standard_layout<AccelerationStructureGeometryAabbsDataKHR>::value, "struct wrapper is not a standard layout!" );
16074 
16075   template <>
16076   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryAabbsDataKHR>
16077   {
16078     using Type = AccelerationStructureGeometryAabbsDataKHR;
16079   };
16080 
16081   struct AccelerationStructureGeometryInstancesDataKHR
16082   {
16083     static const bool allowDuplicate = false;
16084     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
16085 
16086 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR16087     AccelerationStructureGeometryInstancesDataKHR(VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}) VULKAN_HPP_NOEXCEPT
16088     : arrayOfPointers( arrayOfPointers_ ), data( data_ )
16089     {}
16090 
16091     AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16092 
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR16093     AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16094       : AccelerationStructureGeometryInstancesDataKHR( *reinterpret_cast<AccelerationStructureGeometryInstancesDataKHR const *>( &rhs ) )
16095     {}
16096 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16097 
16098     AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16099 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR16100     AccelerationStructureGeometryInstancesDataKHR & operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16101     {
16102       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const *>( &rhs );
16103       return *this;
16104     }
16105 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR16106     AccelerationStructureGeometryInstancesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16107     {
16108       pNext = pNext_;
16109       return *this;
16110     }
16111 
setArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR16112     AccelerationStructureGeometryInstancesDataKHR & setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
16113     {
16114       arrayOfPointers = arrayOfPointers_;
16115       return *this;
16116     }
16117 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR16118     AccelerationStructureGeometryInstancesDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
16119     {
16120       data = data_;
16121       return *this;
16122     }
16123 
16124 
operator VkAccelerationStructureGeometryInstancesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR16125     operator VkAccelerationStructureGeometryInstancesDataKHR const&() const VULKAN_HPP_NOEXCEPT
16126     {
16127       return *reinterpret_cast<const VkAccelerationStructureGeometryInstancesDataKHR*>( this );
16128     }
16129 
operator VkAccelerationStructureGeometryInstancesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR16130     operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
16131     {
16132       return *reinterpret_cast<VkAccelerationStructureGeometryInstancesDataKHR*>( this );
16133     }
16134 
16135 
16136 
16137 
16138   public:
16139     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
16140     const void* pNext = {};
16141     VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {};
16142     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
16143 
16144   };
16145   static_assert( sizeof( AccelerationStructureGeometryInstancesDataKHR ) == sizeof( VkAccelerationStructureGeometryInstancesDataKHR ), "struct and wrapper have different size!" );
16146   static_assert( std::is_standard_layout<AccelerationStructureGeometryInstancesDataKHR>::value, "struct wrapper is not a standard layout!" );
16147 
16148   template <>
16149   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryInstancesDataKHR>
16150   {
16151     using Type = AccelerationStructureGeometryInstancesDataKHR;
16152   };
16153 
16154   union AccelerationStructureGeometryDataKHR
16155   {
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)16156     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const& rhs ) VULKAN_HPP_NOEXCEPT
16157     {
16158       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
16159     }
16160 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_={} )16161     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} )
16162       : triangles( triangles_ )
16163     {}
16164 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_)16165     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ )
16166       : aabbs( aabbs_ )
16167     {}
16168 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_)16169     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ )
16170       : instances( instances_ )
16171     {}
16172 
setTriangles(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_)16173     AccelerationStructureGeometryDataKHR & setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
16174     {
16175       triangles = triangles_;
16176       return *this;
16177     }
16178 
setAabbs(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_)16179     AccelerationStructureGeometryDataKHR & setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
16180     {
16181       aabbs = aabbs_;
16182       return *this;
16183     }
16184 
setInstances(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_)16185     AccelerationStructureGeometryDataKHR & setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
16186     {
16187       instances = instances_;
16188       return *this;
16189     }
16190 
operator =(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)16191     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16192     {
16193       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
16194       return *this;
16195     }
16196 
operator VkAccelerationStructureGeometryDataKHR const&() const16197     operator VkAccelerationStructureGeometryDataKHR const&() const
16198     {
16199       return *reinterpret_cast<const VkAccelerationStructureGeometryDataKHR*>(this);
16200     }
16201 
operator VkAccelerationStructureGeometryDataKHR&()16202     operator VkAccelerationStructureGeometryDataKHR &()
16203     {
16204       return *reinterpret_cast<VkAccelerationStructureGeometryDataKHR*>(this);
16205     }
16206 
16207 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
16208     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles;
16209     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs;
16210     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances;
16211 #else
16212     VkAccelerationStructureGeometryTrianglesDataKHR triangles;
16213     VkAccelerationStructureGeometryAabbsDataKHR aabbs;
16214     VkAccelerationStructureGeometryInstancesDataKHR instances;
16215 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
16216   };
16217 
16218   struct AccelerationStructureGeometryKHR
16219   {
16220     static const bool allowDuplicate = false;
16221     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR;
16222 
16223 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16224     AccelerationStructureGeometryKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT
16225     : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
16226     {}
16227 
16228     AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16229 
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16230     AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16231       : AccelerationStructureGeometryKHR( *reinterpret_cast<AccelerationStructureGeometryKHR const *>( &rhs ) )
16232     {}
16233 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16234 
16235     AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16236 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16237     AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16238     {
16239       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR const *>( &rhs );
16240       return *this;
16241     }
16242 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16243     AccelerationStructureGeometryKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16244     {
16245       pNext = pNext_;
16246       return *this;
16247     }
16248 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16249     AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
16250     {
16251       geometryType = geometryType_;
16252       return *this;
16253     }
16254 
setGeometryVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16255     AccelerationStructureGeometryKHR & setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
16256     {
16257       geometry = geometry_;
16258       return *this;
16259     }
16260 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16261     AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
16262     {
16263       flags = flags_;
16264       return *this;
16265     }
16266 
16267 
operator VkAccelerationStructureGeometryKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16268     operator VkAccelerationStructureGeometryKHR const&() const VULKAN_HPP_NOEXCEPT
16269     {
16270       return *reinterpret_cast<const VkAccelerationStructureGeometryKHR*>( this );
16271     }
16272 
operator VkAccelerationStructureGeometryKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR16273     operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
16274     {
16275       return *reinterpret_cast<VkAccelerationStructureGeometryKHR*>( this );
16276     }
16277 
16278 
16279 
16280 
16281   public:
16282     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR;
16283     const void* pNext = {};
16284     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
16285     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {};
16286     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
16287 
16288   };
16289   static_assert( sizeof( AccelerationStructureGeometryKHR ) == sizeof( VkAccelerationStructureGeometryKHR ), "struct and wrapper have different size!" );
16290   static_assert( std::is_standard_layout<AccelerationStructureGeometryKHR>::value, "struct wrapper is not a standard layout!" );
16291 
16292   template <>
16293   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryKHR>
16294   {
16295     using Type = AccelerationStructureGeometryKHR;
16296   };
16297 
16298   union DeviceOrHostAddressKHR
16299   {
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)16300     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const& rhs ) VULKAN_HPP_NOEXCEPT
16301     {
16302       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
16303     }
16304 
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )16305     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
16306       : deviceAddress( deviceAddress_ )
16307     {}
16308 
DeviceOrHostAddressKHR(void * hostAddress_)16309     DeviceOrHostAddressKHR( void* hostAddress_ )
16310       : hostAddress( hostAddress_ )
16311     {}
16312 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)16313     DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
16314     {
16315       deviceAddress = deviceAddress_;
16316       return *this;
16317     }
16318 
setHostAddress(void * hostAddress_)16319     DeviceOrHostAddressKHR & setHostAddress( void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
16320     {
16321       hostAddress = hostAddress_;
16322       return *this;
16323     }
16324 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)16325     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16326     {
16327       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
16328       return *this;
16329     }
16330 
operator VkDeviceOrHostAddressKHR const&() const16331     operator VkDeviceOrHostAddressKHR const&() const
16332     {
16333       return *reinterpret_cast<const VkDeviceOrHostAddressKHR*>(this);
16334     }
16335 
operator VkDeviceOrHostAddressKHR&()16336     operator VkDeviceOrHostAddressKHR &()
16337     {
16338       return *reinterpret_cast<VkDeviceOrHostAddressKHR*>(this);
16339     }
16340 
16341 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
16342     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
16343     void* hostAddress;
16344 #else
16345     VkDeviceAddress deviceAddress;
16346     void* hostAddress;
16347 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
16348   };
16349 
16350   struct AccelerationStructureBuildGeometryInfoKHR
16351   {
16352     static const bool allowDuplicate = false;
16353     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
16354 
16355 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16356     AccelerationStructureBuildGeometryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}) VULKAN_HPP_NOEXCEPT
16357     : type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ ), ppGeometries( ppGeometries_ ), scratchData( scratchData_ )
16358     {}
16359 
16360     AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16361 
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16362     AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16363       : AccelerationStructureBuildGeometryInfoKHR( *reinterpret_cast<AccelerationStructureBuildGeometryInfoKHR const *>( &rhs ) )
16364     {}
16365 
16366 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16367     AccelerationStructureBuildGeometryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const > const & pGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {} )
16368     : type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( static_cast<uint32_t>( !geometries_.empty() ? geometries_.size() : pGeometries_.size() ) ), pGeometries( geometries_.data() ), ppGeometries( pGeometries_.data() ), scratchData( scratchData_ )
16369     {
16370 #ifdef VULKAN_HPP_NO_EXCEPTIONS
16371       VULKAN_HPP_ASSERT( ( !geometries_.empty() + !pGeometries_.empty() ) == 1 );
16372 #else
16373       if ( ( !geometries_.empty() + !pGeometries_.empty() ) != 1 )
16374       {
16375         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureBuildGeometryInfoKHR::AccelerationStructureBuildGeometryInfoKHR: ( !geometries_.empty() + !pGeometries_.empty() ) != 1" );
16376       }
16377 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
16378     }
16379 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16380 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16381 
16382     AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16383 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16384     AccelerationStructureBuildGeometryInfoKHR & operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16385     {
16386       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR const *>( &rhs );
16387       return *this;
16388     }
16389 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16390     AccelerationStructureBuildGeometryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16391     {
16392       pNext = pNext_;
16393       return *this;
16394     }
16395 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16396     AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
16397     {
16398       type = type_;
16399       return *this;
16400     }
16401 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16402     AccelerationStructureBuildGeometryInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
16403     {
16404       flags = flags_;
16405       return *this;
16406     }
16407 
setModeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16408     AccelerationStructureBuildGeometryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
16409     {
16410       mode = mode_;
16411       return *this;
16412     }
16413 
setSrcAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16414     AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16415     {
16416       srcAccelerationStructure = srcAccelerationStructure_;
16417       return *this;
16418     }
16419 
setDstAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16420     AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16421     {
16422       dstAccelerationStructure = dstAccelerationStructure_;
16423       return *this;
16424     }
16425 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16426     AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
16427     {
16428       geometryCount = geometryCount_;
16429       return *this;
16430     }
16431 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16432     AccelerationStructureBuildGeometryInfoKHR & setPGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries_ ) VULKAN_HPP_NOEXCEPT
16433     {
16434       pGeometries = pGeometries_;
16435       return *this;
16436     }
16437 
16438 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16439     AccelerationStructureBuildGeometryInfoKHR & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_ ) VULKAN_HPP_NOEXCEPT
16440     {
16441       geometryCount = static_cast<uint32_t>( geometries_.size() );
16442       pGeometries = geometries_.data();
16443       return *this;
16444     }
16445 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16446 
setPpGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16447     AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
16448     {
16449       ppGeometries = ppGeometries_;
16450       return *this;
16451     }
16452 
16453 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16454     AccelerationStructureBuildGeometryInfoKHR & setPGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const > const & pGeometries_ ) VULKAN_HPP_NOEXCEPT
16455     {
16456       geometryCount = static_cast<uint32_t>( pGeometries_.size() );
16457       ppGeometries = pGeometries_.data();
16458       return *this;
16459     }
16460 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16461 
setScratchDataVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16462     AccelerationStructureBuildGeometryInfoKHR & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
16463     {
16464       scratchData = scratchData_;
16465       return *this;
16466     }
16467 
16468 
operator VkAccelerationStructureBuildGeometryInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16469     operator VkAccelerationStructureBuildGeometryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16470     {
16471       return *reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( this );
16472     }
16473 
operator VkAccelerationStructureBuildGeometryInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR16474     operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
16475     {
16476       return *reinterpret_cast<VkAccelerationStructureBuildGeometryInfoKHR*>( this );
16477     }
16478 
16479 
16480 
16481 
16482   public:
16483     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
16484     const void* pNext = {};
16485     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
16486     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
16487     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild;
16488     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {};
16489     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {};
16490     uint32_t geometryCount = {};
16491     const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries = {};
16492     const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries = {};
16493     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
16494 
16495   };
16496   static_assert( sizeof( AccelerationStructureBuildGeometryInfoKHR ) == sizeof( VkAccelerationStructureBuildGeometryInfoKHR ), "struct and wrapper have different size!" );
16497   static_assert( std::is_standard_layout<AccelerationStructureBuildGeometryInfoKHR>::value, "struct wrapper is not a standard layout!" );
16498 
16499   template <>
16500   struct CppType<StructureType, StructureType::eAccelerationStructureBuildGeometryInfoKHR>
16501   {
16502     using Type = AccelerationStructureBuildGeometryInfoKHR;
16503   };
16504 
16505   struct AccelerationStructureBuildRangeInfoKHR
16506   {
16507 
16508 
16509 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildRangeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16510     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR(uint32_t primitiveCount_ = {}, uint32_t primitiveOffset_ = {}, uint32_t firstVertex_ = {}, uint32_t transformOffset_ = {}) VULKAN_HPP_NOEXCEPT
16511     : primitiveCount( primitiveCount_ ), primitiveOffset( primitiveOffset_ ), firstVertex( firstVertex_ ), transformOffset( transformOffset_ )
16512     {}
16513 
16514     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16515 
AccelerationStructureBuildRangeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16516     AccelerationStructureBuildRangeInfoKHR( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16517       : AccelerationStructureBuildRangeInfoKHR( *reinterpret_cast<AccelerationStructureBuildRangeInfoKHR const *>( &rhs ) )
16518     {}
16519 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16520 
16521     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & operator=( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16522 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16523     AccelerationStructureBuildRangeInfoKHR & operator=( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16524     {
16525       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR const *>( &rhs );
16526       return *this;
16527     }
16528 
setPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16529     AccelerationStructureBuildRangeInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT
16530     {
16531       primitiveCount = primitiveCount_;
16532       return *this;
16533     }
16534 
setPrimitiveOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16535     AccelerationStructureBuildRangeInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT
16536     {
16537       primitiveOffset = primitiveOffset_;
16538       return *this;
16539     }
16540 
setFirstVertexVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16541     AccelerationStructureBuildRangeInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
16542     {
16543       firstVertex = firstVertex_;
16544       return *this;
16545     }
16546 
setTransformOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16547     AccelerationStructureBuildRangeInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT
16548     {
16549       transformOffset = transformOffset_;
16550       return *this;
16551     }
16552 
16553 
operator VkAccelerationStructureBuildRangeInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16554     operator VkAccelerationStructureBuildRangeInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16555     {
16556       return *reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR*>( this );
16557     }
16558 
operator VkAccelerationStructureBuildRangeInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16559     operator VkAccelerationStructureBuildRangeInfoKHR &() VULKAN_HPP_NOEXCEPT
16560     {
16561       return *reinterpret_cast<VkAccelerationStructureBuildRangeInfoKHR*>( this );
16562     }
16563 
16564 
16565 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16566     auto operator<=>( AccelerationStructureBuildRangeInfoKHR const& ) const = default;
16567 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16568     bool operator==( AccelerationStructureBuildRangeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16569     {
16570       return ( primitiveCount == rhs.primitiveCount )
16571           && ( primitiveOffset == rhs.primitiveOffset )
16572           && ( firstVertex == rhs.firstVertex )
16573           && ( transformOffset == rhs.transformOffset );
16574     }
16575 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR16576     bool operator!=( AccelerationStructureBuildRangeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16577     {
16578       return !operator==( rhs );
16579     }
16580 #endif
16581 
16582 
16583 
16584   public:
16585     uint32_t primitiveCount = {};
16586     uint32_t primitiveOffset = {};
16587     uint32_t firstVertex = {};
16588     uint32_t transformOffset = {};
16589 
16590   };
16591   static_assert( sizeof( AccelerationStructureBuildRangeInfoKHR ) == sizeof( VkAccelerationStructureBuildRangeInfoKHR ), "struct and wrapper have different size!" );
16592   static_assert( std::is_standard_layout<AccelerationStructureBuildRangeInfoKHR>::value, "struct wrapper is not a standard layout!" );
16593 
16594   struct AccelerationStructureBuildSizesInfoKHR
16595   {
16596     static const bool allowDuplicate = false;
16597     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildSizesInfoKHR;
16598 
16599 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildSizesInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16600     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR(VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {}) VULKAN_HPP_NOEXCEPT
16601     : accelerationStructureSize( accelerationStructureSize_ ), updateScratchSize( updateScratchSize_ ), buildScratchSize( buildScratchSize_ )
16602     {}
16603 
16604     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16605 
AccelerationStructureBuildSizesInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16606     AccelerationStructureBuildSizesInfoKHR( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16607       : AccelerationStructureBuildSizesInfoKHR( *reinterpret_cast<AccelerationStructureBuildSizesInfoKHR const *>( &rhs ) )
16608     {}
16609 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16610 
16611     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR & operator=( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16612 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16613     AccelerationStructureBuildSizesInfoKHR & operator=( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16614     {
16615       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR const *>( &rhs );
16616       return *this;
16617     }
16618 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16619     AccelerationStructureBuildSizesInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16620     {
16621       pNext = pNext_;
16622       return *this;
16623     }
16624 
setAccelerationStructureSizeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16625     AccelerationStructureBuildSizesInfoKHR & setAccelerationStructureSize( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ ) VULKAN_HPP_NOEXCEPT
16626     {
16627       accelerationStructureSize = accelerationStructureSize_;
16628       return *this;
16629     }
16630 
setUpdateScratchSizeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16631     AccelerationStructureBuildSizesInfoKHR & setUpdateScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ ) VULKAN_HPP_NOEXCEPT
16632     {
16633       updateScratchSize = updateScratchSize_;
16634       return *this;
16635     }
16636 
setBuildScratchSizeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16637     AccelerationStructureBuildSizesInfoKHR & setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT
16638     {
16639       buildScratchSize = buildScratchSize_;
16640       return *this;
16641     }
16642 
16643 
operator VkAccelerationStructureBuildSizesInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16644     operator VkAccelerationStructureBuildSizesInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16645     {
16646       return *reinterpret_cast<const VkAccelerationStructureBuildSizesInfoKHR*>( this );
16647     }
16648 
operator VkAccelerationStructureBuildSizesInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16649     operator VkAccelerationStructureBuildSizesInfoKHR &() VULKAN_HPP_NOEXCEPT
16650     {
16651       return *reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR*>( this );
16652     }
16653 
16654 
16655 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16656     auto operator<=>( AccelerationStructureBuildSizesInfoKHR const& ) const = default;
16657 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16658     bool operator==( AccelerationStructureBuildSizesInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16659     {
16660       return ( sType == rhs.sType )
16661           && ( pNext == rhs.pNext )
16662           && ( accelerationStructureSize == rhs.accelerationStructureSize )
16663           && ( updateScratchSize == rhs.updateScratchSize )
16664           && ( buildScratchSize == rhs.buildScratchSize );
16665     }
16666 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR16667     bool operator!=( AccelerationStructureBuildSizesInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16668     {
16669       return !operator==( rhs );
16670     }
16671 #endif
16672 
16673 
16674 
16675   public:
16676     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildSizesInfoKHR;
16677     const void* pNext = {};
16678     VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize = {};
16679     VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize = {};
16680     VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize = {};
16681 
16682   };
16683   static_assert( sizeof( AccelerationStructureBuildSizesInfoKHR ) == sizeof( VkAccelerationStructureBuildSizesInfoKHR ), "struct and wrapper have different size!" );
16684   static_assert( std::is_standard_layout<AccelerationStructureBuildSizesInfoKHR>::value, "struct wrapper is not a standard layout!" );
16685 
16686   template <>
16687   struct CppType<StructureType, StructureType::eAccelerationStructureBuildSizesInfoKHR>
16688   {
16689     using Type = AccelerationStructureBuildSizesInfoKHR;
16690   };
16691 
16692   class Buffer
16693   {
16694   public:
16695     using CType = VkBuffer;
16696 
16697     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer;
16698     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
16699 
16700   public:
Buffer()16701     VULKAN_HPP_CONSTEXPR Buffer() VULKAN_HPP_NOEXCEPT
16702       : m_buffer(VK_NULL_HANDLE)
16703     {}
16704 
Buffer(std::nullptr_t)16705     VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16706       : m_buffer(VK_NULL_HANDLE)
16707     {}
16708 
Buffer(VkBuffer buffer)16709     VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT
16710       : m_buffer( buffer )
16711     {}
16712 
16713 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBuffer buffer)16714     Buffer & operator=(VkBuffer buffer) VULKAN_HPP_NOEXCEPT
16715     {
16716       m_buffer = buffer;
16717       return *this;
16718     }
16719 #endif
16720 
operator =(std::nullptr_t)16721     Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16722     {
16723       m_buffer = VK_NULL_HANDLE;
16724       return *this;
16725     }
16726 
16727 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16728     auto operator<=>( Buffer const& ) const = default;
16729 #else
operator ==(Buffer const & rhs) const16730     bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
16731     {
16732       return m_buffer == rhs.m_buffer;
16733     }
16734 
operator !=(Buffer const & rhs) const16735     bool operator!=(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
16736     {
16737       return m_buffer != rhs.m_buffer;
16738     }
16739 
operator <(Buffer const & rhs) const16740     bool operator<(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
16741     {
16742       return m_buffer < rhs.m_buffer;
16743     }
16744 #endif
16745 
operator VkBuffer() const16746     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT
16747     {
16748       return m_buffer;
16749     }
16750 
operator bool() const16751     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16752     {
16753       return m_buffer != VK_NULL_HANDLE;
16754     }
16755 
operator !() const16756     bool operator!() const VULKAN_HPP_NOEXCEPT
16757     {
16758       return m_buffer == VK_NULL_HANDLE;
16759     }
16760 
16761   private:
16762     VkBuffer m_buffer;
16763   };
16764   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" );
16765 
16766   template <>
16767   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBuffer>
16768   {
16769     using type = VULKAN_HPP_NAMESPACE::Buffer;
16770   };
16771 
16772   template <>
16773   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eBuffer>
16774   {
16775     using Type = VULKAN_HPP_NAMESPACE::Buffer;
16776   };
16777 
16778 
16779   template <>
16780   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer>
16781   {
16782     using Type = VULKAN_HPP_NAMESPACE::Buffer;
16783   };
16784 
16785 
16786   template <>
16787   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Buffer>
16788   {
16789     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
16790   };
16791 
16792   struct AccelerationStructureCreateInfoKHR
16793   {
16794     static const bool allowDuplicate = false;
16795     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR;
16796 
16797 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16798     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT
16799     : createFlags( createFlags_ ), buffer( buffer_ ), offset( offset_ ), size( size_ ), type( type_ ), deviceAddress( deviceAddress_ )
16800     {}
16801 
16802     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16803 
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16804     AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16805       : AccelerationStructureCreateInfoKHR( *reinterpret_cast<AccelerationStructureCreateInfoKHR const *>( &rhs ) )
16806     {}
16807 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16808 
16809     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16810 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16811     AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16812     {
16813       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const *>( &rhs );
16814       return *this;
16815     }
16816 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16817     AccelerationStructureCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16818     {
16819       pNext = pNext_;
16820       return *this;
16821     }
16822 
setCreateFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16823     AccelerationStructureCreateInfoKHR & setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT
16824     {
16825       createFlags = createFlags_;
16826       return *this;
16827     }
16828 
setBufferVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16829     AccelerationStructureCreateInfoKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
16830     {
16831       buffer = buffer_;
16832       return *this;
16833     }
16834 
setOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16835     AccelerationStructureCreateInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
16836     {
16837       offset = offset_;
16838       return *this;
16839     }
16840 
setSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16841     AccelerationStructureCreateInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
16842     {
16843       size = size_;
16844       return *this;
16845     }
16846 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16847     AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
16848     {
16849       type = type_;
16850       return *this;
16851     }
16852 
setDeviceAddressVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16853     AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
16854     {
16855       deviceAddress = deviceAddress_;
16856       return *this;
16857     }
16858 
16859 
operator VkAccelerationStructureCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16860     operator VkAccelerationStructureCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16861     {
16862       return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( this );
16863     }
16864 
operator VkAccelerationStructureCreateInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16865     operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
16866     {
16867       return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR*>( this );
16868     }
16869 
16870 
16871 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16872     auto operator<=>( AccelerationStructureCreateInfoKHR const& ) const = default;
16873 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16874     bool operator==( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16875     {
16876       return ( sType == rhs.sType )
16877           && ( pNext == rhs.pNext )
16878           && ( createFlags == rhs.createFlags )
16879           && ( buffer == rhs.buffer )
16880           && ( offset == rhs.offset )
16881           && ( size == rhs.size )
16882           && ( type == rhs.type )
16883           && ( deviceAddress == rhs.deviceAddress );
16884     }
16885 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR16886     bool operator!=( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16887     {
16888       return !operator==( rhs );
16889     }
16890 #endif
16891 
16892 
16893 
16894   public:
16895     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR;
16896     const void* pNext = {};
16897     VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags = {};
16898     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
16899     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
16900     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
16901     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
16902     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
16903 
16904   };
16905   static_assert( sizeof( AccelerationStructureCreateInfoKHR ) == sizeof( VkAccelerationStructureCreateInfoKHR ), "struct and wrapper have different size!" );
16906   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
16907 
16908   template <>
16909   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoKHR>
16910   {
16911     using Type = AccelerationStructureCreateInfoKHR;
16912   };
16913 
16914   struct GeometryTrianglesNV
16915   {
16916     static const bool allowDuplicate = false;
16917     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV;
16918 
16919 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16920     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
16921     : vertexData( vertexData_ ), vertexOffset( vertexOffset_ ), vertexCount( vertexCount_ ), vertexStride( vertexStride_ ), vertexFormat( vertexFormat_ ), indexData( indexData_ ), indexOffset( indexOffset_ ), indexCount( indexCount_ ), indexType( indexType_ ), transformData( transformData_ ), transformOffset( transformOffset_ )
16922     {}
16923 
16924     VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16925 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16926     GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
16927       : GeometryTrianglesNV( *reinterpret_cast<GeometryTrianglesNV const *>( &rhs ) )
16928     {}
16929 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16930 
16931     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16932 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV16933     GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
16934     {
16935       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const *>( &rhs );
16936       return *this;
16937     }
16938 
setPNextVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16939     GeometryTrianglesNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16940     {
16941       pNext = pNext_;
16942       return *this;
16943     }
16944 
setVertexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16945     GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT
16946     {
16947       vertexData = vertexData_;
16948       return *this;
16949     }
16950 
setVertexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16951     GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT
16952     {
16953       vertexOffset = vertexOffset_;
16954       return *this;
16955     }
16956 
setVertexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16957     GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
16958     {
16959       vertexCount = vertexCount_;
16960       return *this;
16961     }
16962 
setVertexStrideVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16963     GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
16964     {
16965       vertexStride = vertexStride_;
16966       return *this;
16967     }
16968 
setVertexFormatVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16969     GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
16970     {
16971       vertexFormat = vertexFormat_;
16972       return *this;
16973     }
16974 
setIndexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16975     GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT
16976     {
16977       indexData = indexData_;
16978       return *this;
16979     }
16980 
setIndexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16981     GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT
16982     {
16983       indexOffset = indexOffset_;
16984       return *this;
16985     }
16986 
setIndexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16987     GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
16988     {
16989       indexCount = indexCount_;
16990       return *this;
16991     }
16992 
setIndexTypeVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16993     GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
16994     {
16995       indexType = indexType_;
16996       return *this;
16997     }
16998 
setTransformDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV16999     GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT
17000     {
17001       transformData = transformData_;
17002       return *this;
17003     }
17004 
setTransformOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17005     GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT
17006     {
17007       transformOffset = transformOffset_;
17008       return *this;
17009     }
17010 
17011 
operator VkGeometryTrianglesNV const&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17012     operator VkGeometryTrianglesNV const&() const VULKAN_HPP_NOEXCEPT
17013     {
17014       return *reinterpret_cast<const VkGeometryTrianglesNV*>( this );
17015     }
17016 
operator VkGeometryTrianglesNV&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17017     operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
17018     {
17019       return *reinterpret_cast<VkGeometryTrianglesNV*>( this );
17020     }
17021 
17022 
17023 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17024     auto operator<=>( GeometryTrianglesNV const& ) const = default;
17025 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17026     bool operator==( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17027     {
17028       return ( sType == rhs.sType )
17029           && ( pNext == rhs.pNext )
17030           && ( vertexData == rhs.vertexData )
17031           && ( vertexOffset == rhs.vertexOffset )
17032           && ( vertexCount == rhs.vertexCount )
17033           && ( vertexStride == rhs.vertexStride )
17034           && ( vertexFormat == rhs.vertexFormat )
17035           && ( indexData == rhs.indexData )
17036           && ( indexOffset == rhs.indexOffset )
17037           && ( indexCount == rhs.indexCount )
17038           && ( indexType == rhs.indexType )
17039           && ( transformData == rhs.transformData )
17040           && ( transformOffset == rhs.transformOffset );
17041     }
17042 
operator !=VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17043     bool operator!=( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17044     {
17045       return !operator==( rhs );
17046     }
17047 #endif
17048 
17049 
17050 
17051   public:
17052     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV;
17053     const void* pNext = {};
17054     VULKAN_HPP_NAMESPACE::Buffer vertexData = {};
17055     VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {};
17056     uint32_t vertexCount = {};
17057     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
17058     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
17059     VULKAN_HPP_NAMESPACE::Buffer indexData = {};
17060     VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {};
17061     uint32_t indexCount = {};
17062     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
17063     VULKAN_HPP_NAMESPACE::Buffer transformData = {};
17064     VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {};
17065 
17066   };
17067   static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" );
17068   static_assert( std::is_standard_layout<GeometryTrianglesNV>::value, "struct wrapper is not a standard layout!" );
17069 
17070   template <>
17071   struct CppType<StructureType, StructureType::eGeometryTrianglesNV>
17072   {
17073     using Type = GeometryTrianglesNV;
17074   };
17075 
17076   struct GeometryAABBNV
17077   {
17078     static const bool allowDuplicate = false;
17079     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV;
17080 
17081 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV17082     VULKAN_HPP_CONSTEXPR GeometryAABBNV(VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, uint32_t numAABBs_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
17083     : aabbData( aabbData_ ), numAABBs( numAABBs_ ), stride( stride_ ), offset( offset_ )
17084     {}
17085 
17086     VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17087 
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV17088     GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
17089       : GeometryAABBNV( *reinterpret_cast<GeometryAABBNV const *>( &rhs ) )
17090     {}
17091 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17092 
17093     VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17094 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV17095     GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
17096     {
17097       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryAABBNV const *>( &rhs );
17098       return *this;
17099     }
17100 
setPNextVULKAN_HPP_NAMESPACE::GeometryAABBNV17101     GeometryAABBNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17102     {
17103       pNext = pNext_;
17104       return *this;
17105     }
17106 
setAabbDataVULKAN_HPP_NAMESPACE::GeometryAABBNV17107     GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT
17108     {
17109       aabbData = aabbData_;
17110       return *this;
17111     }
17112 
setNumAABBsVULKAN_HPP_NAMESPACE::GeometryAABBNV17113     GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT
17114     {
17115       numAABBs = numAABBs_;
17116       return *this;
17117     }
17118 
setStrideVULKAN_HPP_NAMESPACE::GeometryAABBNV17119     GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
17120     {
17121       stride = stride_;
17122       return *this;
17123     }
17124 
setOffsetVULKAN_HPP_NAMESPACE::GeometryAABBNV17125     GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
17126     {
17127       offset = offset_;
17128       return *this;
17129     }
17130 
17131 
operator VkGeometryAABBNV const&VULKAN_HPP_NAMESPACE::GeometryAABBNV17132     operator VkGeometryAABBNV const&() const VULKAN_HPP_NOEXCEPT
17133     {
17134       return *reinterpret_cast<const VkGeometryAABBNV*>( this );
17135     }
17136 
operator VkGeometryAABBNV&VULKAN_HPP_NAMESPACE::GeometryAABBNV17137     operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
17138     {
17139       return *reinterpret_cast<VkGeometryAABBNV*>( this );
17140     }
17141 
17142 
17143 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17144     auto operator<=>( GeometryAABBNV const& ) const = default;
17145 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryAABBNV17146     bool operator==( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17147     {
17148       return ( sType == rhs.sType )
17149           && ( pNext == rhs.pNext )
17150           && ( aabbData == rhs.aabbData )
17151           && ( numAABBs == rhs.numAABBs )
17152           && ( stride == rhs.stride )
17153           && ( offset == rhs.offset );
17154     }
17155 
operator !=VULKAN_HPP_NAMESPACE::GeometryAABBNV17156     bool operator!=( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17157     {
17158       return !operator==( rhs );
17159     }
17160 #endif
17161 
17162 
17163 
17164   public:
17165     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV;
17166     const void* pNext = {};
17167     VULKAN_HPP_NAMESPACE::Buffer aabbData = {};
17168     uint32_t numAABBs = {};
17169     uint32_t stride = {};
17170     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
17171 
17172   };
17173   static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" );
17174   static_assert( std::is_standard_layout<GeometryAABBNV>::value, "struct wrapper is not a standard layout!" );
17175 
17176   template <>
17177   struct CppType<StructureType, StructureType::eGeometryAabbNV>
17178   {
17179     using Type = GeometryAABBNV;
17180   };
17181 
17182   struct GeometryDataNV
17183   {
17184 
17185 
17186 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV17187     VULKAN_HPP_CONSTEXPR GeometryDataNV(VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {}) VULKAN_HPP_NOEXCEPT
17188     : triangles( triangles_ ), aabbs( aabbs_ )
17189     {}
17190 
17191     VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17192 
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV17193     GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
17194       : GeometryDataNV( *reinterpret_cast<GeometryDataNV const *>( &rhs ) )
17195     {}
17196 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17197 
17198     VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17199 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV17200     GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
17201     {
17202       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryDataNV const *>( &rhs );
17203       return *this;
17204     }
17205 
setTrianglesVULKAN_HPP_NAMESPACE::GeometryDataNV17206     GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
17207     {
17208       triangles = triangles_;
17209       return *this;
17210     }
17211 
setAabbsVULKAN_HPP_NAMESPACE::GeometryDataNV17212     GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT
17213     {
17214       aabbs = aabbs_;
17215       return *this;
17216     }
17217 
17218 
operator VkGeometryDataNV const&VULKAN_HPP_NAMESPACE::GeometryDataNV17219     operator VkGeometryDataNV const&() const VULKAN_HPP_NOEXCEPT
17220     {
17221       return *reinterpret_cast<const VkGeometryDataNV*>( this );
17222     }
17223 
operator VkGeometryDataNV&VULKAN_HPP_NAMESPACE::GeometryDataNV17224     operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
17225     {
17226       return *reinterpret_cast<VkGeometryDataNV*>( this );
17227     }
17228 
17229 
17230 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17231     auto operator<=>( GeometryDataNV const& ) const = default;
17232 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryDataNV17233     bool operator==( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17234     {
17235       return ( triangles == rhs.triangles )
17236           && ( aabbs == rhs.aabbs );
17237     }
17238 
operator !=VULKAN_HPP_NAMESPACE::GeometryDataNV17239     bool operator!=( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17240     {
17241       return !operator==( rhs );
17242     }
17243 #endif
17244 
17245 
17246 
17247   public:
17248     VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {};
17249     VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {};
17250 
17251   };
17252   static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" );
17253   static_assert( std::is_standard_layout<GeometryDataNV>::value, "struct wrapper is not a standard layout!" );
17254 
17255   struct GeometryNV
17256   {
17257     static const bool allowDuplicate = false;
17258     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV;
17259 
17260 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV17261     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
17262     : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
17263     {}
17264 
17265     VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17266 
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV17267     GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
17268       : GeometryNV( *reinterpret_cast<GeometryNV const *>( &rhs ) )
17269     {}
17270 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17271 
17272     VULKAN_HPP_CONSTEXPR_14 GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17273 
operator =VULKAN_HPP_NAMESPACE::GeometryNV17274     GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
17275     {
17276       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryNV const *>( &rhs );
17277       return *this;
17278     }
17279 
setPNextVULKAN_HPP_NAMESPACE::GeometryNV17280     GeometryNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17281     {
17282       pNext = pNext_;
17283       return *this;
17284     }
17285 
setGeometryTypeVULKAN_HPP_NAMESPACE::GeometryNV17286     GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
17287     {
17288       geometryType = geometryType_;
17289       return *this;
17290     }
17291 
setGeometryVULKAN_HPP_NAMESPACE::GeometryNV17292     GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT
17293     {
17294       geometry = geometry_;
17295       return *this;
17296     }
17297 
setFlagsVULKAN_HPP_NAMESPACE::GeometryNV17298     GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
17299     {
17300       flags = flags_;
17301       return *this;
17302     }
17303 
17304 
operator VkGeometryNV const&VULKAN_HPP_NAMESPACE::GeometryNV17305     operator VkGeometryNV const&() const VULKAN_HPP_NOEXCEPT
17306     {
17307       return *reinterpret_cast<const VkGeometryNV*>( this );
17308     }
17309 
operator VkGeometryNV&VULKAN_HPP_NAMESPACE::GeometryNV17310     operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
17311     {
17312       return *reinterpret_cast<VkGeometryNV*>( this );
17313     }
17314 
17315 
17316 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17317     auto operator<=>( GeometryNV const& ) const = default;
17318 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryNV17319     bool operator==( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17320     {
17321       return ( sType == rhs.sType )
17322           && ( pNext == rhs.pNext )
17323           && ( geometryType == rhs.geometryType )
17324           && ( geometry == rhs.geometry )
17325           && ( flags == rhs.flags );
17326     }
17327 
operator !=VULKAN_HPP_NAMESPACE::GeometryNV17328     bool operator!=( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17329     {
17330       return !operator==( rhs );
17331     }
17332 #endif
17333 
17334 
17335 
17336   public:
17337     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV;
17338     const void* pNext = {};
17339     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
17340     VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {};
17341     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
17342 
17343   };
17344   static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" );
17345   static_assert( std::is_standard_layout<GeometryNV>::value, "struct wrapper is not a standard layout!" );
17346 
17347   template <>
17348   struct CppType<StructureType, StructureType::eGeometryNV>
17349   {
17350     using Type = GeometryNV;
17351   };
17352 
17353   struct AccelerationStructureInfoNV
17354   {
17355     static const bool allowDuplicate = false;
17356     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV;
17357 
17358 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17359     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
17360     : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ )
17361     {}
17362 
17363     VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17364 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17365     AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
17366       : AccelerationStructureInfoNV( *reinterpret_cast<AccelerationStructureInfoNV const *>( &rhs ) )
17367     {}
17368 
17369 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17370     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_ )
17371     : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( static_cast<uint32_t>( geometries_.size() ) ), pGeometries( geometries_.data() )
17372     {}
17373 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
17374 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17375 
17376     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17377 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17378     AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
17379     {
17380       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const *>( &rhs );
17381       return *this;
17382     }
17383 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17384     AccelerationStructureInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17385     {
17386       pNext = pNext_;
17387       return *this;
17388     }
17389 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17390     AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT
17391     {
17392       type = type_;
17393       return *this;
17394     }
17395 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17396     AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
17397     {
17398       flags = flags_;
17399       return *this;
17400     }
17401 
setInstanceCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17402     AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
17403     {
17404       instanceCount = instanceCount_;
17405       return *this;
17406     }
17407 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17408     AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
17409     {
17410       geometryCount = geometryCount_;
17411       return *this;
17412     }
17413 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17414     AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ ) VULKAN_HPP_NOEXCEPT
17415     {
17416       pGeometries = pGeometries_;
17417       return *this;
17418     }
17419 
17420 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17421     AccelerationStructureInfoNV & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ ) VULKAN_HPP_NOEXCEPT
17422     {
17423       geometryCount = static_cast<uint32_t>( geometries_.size() );
17424       pGeometries = geometries_.data();
17425       return *this;
17426     }
17427 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
17428 
17429 
operator VkAccelerationStructureInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17430     operator VkAccelerationStructureInfoNV const&() const VULKAN_HPP_NOEXCEPT
17431     {
17432       return *reinterpret_cast<const VkAccelerationStructureInfoNV*>( this );
17433     }
17434 
operator VkAccelerationStructureInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17435     operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
17436     {
17437       return *reinterpret_cast<VkAccelerationStructureInfoNV*>( this );
17438     }
17439 
17440 
17441 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17442     auto operator<=>( AccelerationStructureInfoNV const& ) const = default;
17443 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17444     bool operator==( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17445     {
17446       return ( sType == rhs.sType )
17447           && ( pNext == rhs.pNext )
17448           && ( type == rhs.type )
17449           && ( flags == rhs.flags )
17450           && ( instanceCount == rhs.instanceCount )
17451           && ( geometryCount == rhs.geometryCount )
17452           && ( pGeometries == rhs.pGeometries );
17453     }
17454 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV17455     bool operator!=( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17456     {
17457       return !operator==( rhs );
17458     }
17459 #endif
17460 
17461 
17462 
17463   public:
17464     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV;
17465     const void* pNext = {};
17466     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {};
17467     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {};
17468     uint32_t instanceCount = {};
17469     uint32_t geometryCount = {};
17470     const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries = {};
17471 
17472   };
17473   static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" );
17474   static_assert( std::is_standard_layout<AccelerationStructureInfoNV>::value, "struct wrapper is not a standard layout!" );
17475 
17476   template <>
17477   struct CppType<StructureType, StructureType::eAccelerationStructureInfoNV>
17478   {
17479     using Type = AccelerationStructureInfoNV;
17480   };
17481 
17482   struct AccelerationStructureCreateInfoNV
17483   {
17484     static const bool allowDuplicate = false;
17485     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV;
17486 
17487 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17488     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {}) VULKAN_HPP_NOEXCEPT
17489     : compactedSize( compactedSize_ ), info( info_ )
17490     {}
17491 
17492     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17493 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17494     AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
17495       : AccelerationStructureCreateInfoNV( *reinterpret_cast<AccelerationStructureCreateInfoNV const *>( &rhs ) )
17496     {}
17497 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17498 
17499     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17500 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17501     AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
17502     {
17503       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const *>( &rhs );
17504       return *this;
17505     }
17506 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17507     AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17508     {
17509       pNext = pNext_;
17510       return *this;
17511     }
17512 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17513     AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
17514     {
17515       compactedSize = compactedSize_;
17516       return *this;
17517     }
17518 
setInfoVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17519     AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT
17520     {
17521       info = info_;
17522       return *this;
17523     }
17524 
17525 
operator VkAccelerationStructureCreateInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17526     operator VkAccelerationStructureCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
17527     {
17528       return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( this );
17529     }
17530 
operator VkAccelerationStructureCreateInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17531     operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
17532     {
17533       return *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>( this );
17534     }
17535 
17536 
17537 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17538     auto operator<=>( AccelerationStructureCreateInfoNV const& ) const = default;
17539 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17540     bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17541     {
17542       return ( sType == rhs.sType )
17543           && ( pNext == rhs.pNext )
17544           && ( compactedSize == rhs.compactedSize )
17545           && ( info == rhs.info );
17546     }
17547 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV17548     bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17549     {
17550       return !operator==( rhs );
17551     }
17552 #endif
17553 
17554 
17555 
17556   public:
17557     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
17558     const void* pNext = {};
17559     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
17560     VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {};
17561 
17562   };
17563   static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" );
17564   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
17565 
17566   template <>
17567   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoNV>
17568   {
17569     using Type = AccelerationStructureCreateInfoNV;
17570   };
17571 
17572   struct AccelerationStructureDeviceAddressInfoKHR
17573   {
17574     static const bool allowDuplicate = false;
17575     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
17576 
17577 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17578     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
17579     : accelerationStructure( accelerationStructure_ )
17580     {}
17581 
17582     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17583 
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17584     AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17585       : AccelerationStructureDeviceAddressInfoKHR( *reinterpret_cast<AccelerationStructureDeviceAddressInfoKHR const *>( &rhs ) )
17586     {}
17587 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17588 
17589     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17590 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17591     AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17592     {
17593       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const *>( &rhs );
17594       return *this;
17595     }
17596 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17597     AccelerationStructureDeviceAddressInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17598     {
17599       pNext = pNext_;
17600       return *this;
17601     }
17602 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17603     AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
17604     {
17605       accelerationStructure = accelerationStructure_;
17606       return *this;
17607     }
17608 
17609 
operator VkAccelerationStructureDeviceAddressInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17610     operator VkAccelerationStructureDeviceAddressInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17611     {
17612       return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( this );
17613     }
17614 
operator VkAccelerationStructureDeviceAddressInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17615     operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
17616     {
17617       return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR*>( this );
17618     }
17619 
17620 
17621 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17622     auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const& ) const = default;
17623 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17624     bool operator==( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17625     {
17626       return ( sType == rhs.sType )
17627           && ( pNext == rhs.pNext )
17628           && ( accelerationStructure == rhs.accelerationStructure );
17629     }
17630 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR17631     bool operator!=( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17632     {
17633       return !operator==( rhs );
17634     }
17635 #endif
17636 
17637 
17638 
17639   public:
17640     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
17641     const void* pNext = {};
17642     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
17643 
17644   };
17645   static_assert( sizeof( AccelerationStructureDeviceAddressInfoKHR ) == sizeof( VkAccelerationStructureDeviceAddressInfoKHR ), "struct and wrapper have different size!" );
17646   static_assert( std::is_standard_layout<AccelerationStructureDeviceAddressInfoKHR>::value, "struct wrapper is not a standard layout!" );
17647 
17648   template <>
17649   struct CppType<StructureType, StructureType::eAccelerationStructureDeviceAddressInfoKHR>
17650   {
17651     using Type = AccelerationStructureDeviceAddressInfoKHR;
17652   };
17653 
17654   struct TransformMatrixKHR
17655   {
17656 
17657 
17658 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR17659     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR(std::array<std::array<float,4>,3> const& matrix_ = {}) VULKAN_HPP_NOEXCEPT
17660     : matrix( matrix_ )
17661     {}
17662 
17663     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17664 
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR17665     TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17666       : TransformMatrixKHR( *reinterpret_cast<TransformMatrixKHR const *>( &rhs ) )
17667     {}
17668 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17669 
17670     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17671 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR17672     TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17673     {
17674       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const *>( &rhs );
17675       return *this;
17676     }
17677 
setMatrixVULKAN_HPP_NAMESPACE::TransformMatrixKHR17678     TransformMatrixKHR & setMatrix( std::array<std::array<float,4>,3> matrix_ ) VULKAN_HPP_NOEXCEPT
17679     {
17680       matrix = matrix_;
17681       return *this;
17682     }
17683 
17684 
operator VkTransformMatrixKHR const&VULKAN_HPP_NAMESPACE::TransformMatrixKHR17685     operator VkTransformMatrixKHR const&() const VULKAN_HPP_NOEXCEPT
17686     {
17687       return *reinterpret_cast<const VkTransformMatrixKHR*>( this );
17688     }
17689 
operator VkTransformMatrixKHR&VULKAN_HPP_NAMESPACE::TransformMatrixKHR17690     operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
17691     {
17692       return *reinterpret_cast<VkTransformMatrixKHR*>( this );
17693     }
17694 
17695 
17696 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17697     auto operator<=>( TransformMatrixKHR const& ) const = default;
17698 #else
operator ==VULKAN_HPP_NAMESPACE::TransformMatrixKHR17699     bool operator==( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17700     {
17701       return ( matrix == rhs.matrix );
17702     }
17703 
operator !=VULKAN_HPP_NAMESPACE::TransformMatrixKHR17704     bool operator!=( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17705     {
17706       return !operator==( rhs );
17707     }
17708 #endif
17709 
17710 
17711 
17712   public:
17713     VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
17714 
17715   };
17716   static_assert( sizeof( TransformMatrixKHR ) == sizeof( VkTransformMatrixKHR ), "struct and wrapper have different size!" );
17717   static_assert( std::is_standard_layout<TransformMatrixKHR>::value, "struct wrapper is not a standard layout!" );
17718   using TransformMatrixNV = TransformMatrixKHR;
17719 
17720   struct AccelerationStructureInstanceKHR
17721   {
17722 
17723 
17724 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17725     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
17726     : transform( transform_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ )
17727     {}
17728 
17729     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17730 
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17731     AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17732       : AccelerationStructureInstanceKHR( *reinterpret_cast<AccelerationStructureInstanceKHR const *>( &rhs ) )
17733     {}
17734 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17735 
17736     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17737 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17738     AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17739     {
17740       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const *>( &rhs );
17741       return *this;
17742     }
17743 
setTransformVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17744     AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
17745     {
17746       transform = transform_;
17747       return *this;
17748     }
17749 
setInstanceCustomIndexVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17750     AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
17751     {
17752       instanceCustomIndex = instanceCustomIndex_;
17753       return *this;
17754     }
17755 
setMaskVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17756     AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
17757     {
17758       mask = mask_;
17759       return *this;
17760     }
17761 
setInstanceShaderBindingTableRecordOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17762     AccelerationStructureInstanceKHR & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
17763     {
17764       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
17765       return *this;
17766     }
17767 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17768     AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
17769     {
17770       flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR*>(&flags_);
17771       return *this;
17772     }
17773 
setAccelerationStructureReferenceVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17774     AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
17775     {
17776       accelerationStructureReference = accelerationStructureReference_;
17777       return *this;
17778     }
17779 
17780 
operator VkAccelerationStructureInstanceKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17781     operator VkAccelerationStructureInstanceKHR const&() const VULKAN_HPP_NOEXCEPT
17782     {
17783       return *reinterpret_cast<const VkAccelerationStructureInstanceKHR*>( this );
17784     }
17785 
operator VkAccelerationStructureInstanceKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17786     operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
17787     {
17788       return *reinterpret_cast<VkAccelerationStructureInstanceKHR*>( this );
17789     }
17790 
17791 
17792 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17793     auto operator<=>( AccelerationStructureInstanceKHR const& ) const = default;
17794 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17795     bool operator==( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17796     {
17797       return ( transform == rhs.transform )
17798           && ( instanceCustomIndex == rhs.instanceCustomIndex )
17799           && ( mask == rhs.mask )
17800           && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset )
17801           && ( flags == rhs.flags )
17802           && ( accelerationStructureReference == rhs.accelerationStructureReference );
17803     }
17804 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR17805     bool operator!=( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17806     {
17807       return !operator==( rhs );
17808     }
17809 #endif
17810 
17811 
17812 
17813   public:
17814     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
17815     uint32_t instanceCustomIndex : 24;
17816     uint32_t mask : 8;
17817     uint32_t instanceShaderBindingTableRecordOffset : 24;
17818     VkGeometryInstanceFlagsKHR flags : 8;
17819     uint64_t accelerationStructureReference = {};
17820 
17821   };
17822   static_assert( sizeof( AccelerationStructureInstanceKHR ) == sizeof( VkAccelerationStructureInstanceKHR ), "struct and wrapper have different size!" );
17823   static_assert( std::is_standard_layout<AccelerationStructureInstanceKHR>::value, "struct wrapper is not a standard layout!" );
17824   using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
17825 
17826   class AccelerationStructureNV
17827   {
17828   public:
17829     using CType = VkAccelerationStructureNV;
17830 
17831     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV;
17832     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV;
17833 
17834   public:
AccelerationStructureNV()17835     VULKAN_HPP_CONSTEXPR AccelerationStructureNV() VULKAN_HPP_NOEXCEPT
17836       : m_accelerationStructureNV(VK_NULL_HANDLE)
17837     {}
17838 
AccelerationStructureNV(std::nullptr_t)17839     VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17840       : m_accelerationStructureNV(VK_NULL_HANDLE)
17841     {}
17842 
AccelerationStructureNV(VkAccelerationStructureNV accelerationStructureNV)17843     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureNV( VkAccelerationStructureNV accelerationStructureNV ) VULKAN_HPP_NOEXCEPT
17844       : m_accelerationStructureNV( accelerationStructureNV )
17845     {}
17846 
17847 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkAccelerationStructureNV accelerationStructureNV)17848     AccelerationStructureNV & operator=(VkAccelerationStructureNV accelerationStructureNV) VULKAN_HPP_NOEXCEPT
17849     {
17850       m_accelerationStructureNV = accelerationStructureNV;
17851       return *this;
17852     }
17853 #endif
17854 
operator =(std::nullptr_t)17855     AccelerationStructureNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17856     {
17857       m_accelerationStructureNV = VK_NULL_HANDLE;
17858       return *this;
17859     }
17860 
17861 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17862     auto operator<=>( AccelerationStructureNV const& ) const = default;
17863 #else
operator ==(AccelerationStructureNV const & rhs) const17864     bool operator==( AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17865     {
17866       return m_accelerationStructureNV == rhs.m_accelerationStructureNV;
17867     }
17868 
operator !=(AccelerationStructureNV const & rhs) const17869     bool operator!=(AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17870     {
17871       return m_accelerationStructureNV != rhs.m_accelerationStructureNV;
17872     }
17873 
operator <(AccelerationStructureNV const & rhs) const17874     bool operator<(AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17875     {
17876       return m_accelerationStructureNV < rhs.m_accelerationStructureNV;
17877     }
17878 #endif
17879 
operator VkAccelerationStructureNV() const17880     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureNV() const VULKAN_HPP_NOEXCEPT
17881     {
17882       return m_accelerationStructureNV;
17883     }
17884 
operator bool() const17885     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17886     {
17887       return m_accelerationStructureNV != VK_NULL_HANDLE;
17888     }
17889 
operator !() const17890     bool operator!() const VULKAN_HPP_NOEXCEPT
17891     {
17892       return m_accelerationStructureNV == VK_NULL_HANDLE;
17893     }
17894 
17895   private:
17896     VkAccelerationStructureNV m_accelerationStructureNV;
17897   };
17898   static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureNV ) == sizeof( VkAccelerationStructureNV ), "handle and wrapper have different size!" );
17899 
17900   template <>
17901   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eAccelerationStructureNV>
17902   {
17903     using type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV;
17904   };
17905 
17906   template <>
17907   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV>
17908   {
17909     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV;
17910   };
17911 
17912 
17913   template <>
17914   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV>
17915   {
17916     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV;
17917   };
17918 
17919 
17920   template <>
17921   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>
17922   {
17923     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17924   };
17925 
17926   struct AccelerationStructureMemoryRequirementsInfoNV
17927   {
17928     static const bool allowDuplicate = false;
17929     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
17930 
17931 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17932     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject, VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
17933     : type( type_ ), accelerationStructure( accelerationStructure_ )
17934     {}
17935 
17936     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17937 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17938     AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
17939       : AccelerationStructureMemoryRequirementsInfoNV( *reinterpret_cast<AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs ) )
17940     {}
17941 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17942 
17943     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17944 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17945     AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
17946     {
17947       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs );
17948       return *this;
17949     }
17950 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17951     AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17952     {
17953       pNext = pNext_;
17954       return *this;
17955     }
17956 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17957     AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
17958     {
17959       type = type_;
17960       return *this;
17961     }
17962 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17963     AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
17964     {
17965       accelerationStructure = accelerationStructure_;
17966       return *this;
17967     }
17968 
17969 
operator VkAccelerationStructureMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17970     operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
17971     {
17972       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
17973     }
17974 
operator VkAccelerationStructureMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17975     operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
17976     {
17977       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
17978     }
17979 
17980 
17981 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17982     auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const& ) const = default;
17983 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17984     bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17985     {
17986       return ( sType == rhs.sType )
17987           && ( pNext == rhs.pNext )
17988           && ( type == rhs.type )
17989           && ( accelerationStructure == rhs.accelerationStructure );
17990     }
17991 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV17992     bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
17993     {
17994       return !operator==( rhs );
17995     }
17996 #endif
17997 
17998 
17999 
18000   public:
18001     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
18002     const void* pNext = {};
18003     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject;
18004     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
18005 
18006   };
18007   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
18008   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
18009 
18010   template <>
18011   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoNV>
18012   {
18013     using Type = AccelerationStructureMemoryRequirementsInfoNV;
18014   };
18015 
18016   struct AccelerationStructureVersionInfoKHR
18017   {
18018     static const bool allowDuplicate = false;
18019     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionInfoKHR;
18020 
18021 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureVersionInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18022     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR(const uint8_t* pVersionData_ = {}) VULKAN_HPP_NOEXCEPT
18023     : pVersionData( pVersionData_ )
18024     {}
18025 
18026     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18027 
AccelerationStructureVersionInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18028     AccelerationStructureVersionInfoKHR( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
18029       : AccelerationStructureVersionInfoKHR( *reinterpret_cast<AccelerationStructureVersionInfoKHR const *>( &rhs ) )
18030     {}
18031 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18032 
18033     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & operator=( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18034 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18035     AccelerationStructureVersionInfoKHR & operator=( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
18036     {
18037       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR const *>( &rhs );
18038       return *this;
18039     }
18040 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18041     AccelerationStructureVersionInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18042     {
18043       pNext = pNext_;
18044       return *this;
18045     }
18046 
setPVersionDataVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18047     AccelerationStructureVersionInfoKHR & setPVersionData( const uint8_t* pVersionData_ ) VULKAN_HPP_NOEXCEPT
18048     {
18049       pVersionData = pVersionData_;
18050       return *this;
18051     }
18052 
18053 
operator VkAccelerationStructureVersionInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18054     operator VkAccelerationStructureVersionInfoKHR const&() const VULKAN_HPP_NOEXCEPT
18055     {
18056       return *reinterpret_cast<const VkAccelerationStructureVersionInfoKHR*>( this );
18057     }
18058 
operator VkAccelerationStructureVersionInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18059     operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT
18060     {
18061       return *reinterpret_cast<VkAccelerationStructureVersionInfoKHR*>( this );
18062     }
18063 
18064 
18065 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18066     auto operator<=>( AccelerationStructureVersionInfoKHR const& ) const = default;
18067 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18068     bool operator==( AccelerationStructureVersionInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
18069     {
18070       return ( sType == rhs.sType )
18071           && ( pNext == rhs.pNext )
18072           && ( pVersionData == rhs.pVersionData );
18073     }
18074 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR18075     bool operator!=( AccelerationStructureVersionInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
18076     {
18077       return !operator==( rhs );
18078     }
18079 #endif
18080 
18081 
18082 
18083   public:
18084     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionInfoKHR;
18085     const void* pNext = {};
18086     const uint8_t* pVersionData = {};
18087 
18088   };
18089   static_assert( sizeof( AccelerationStructureVersionInfoKHR ) == sizeof( VkAccelerationStructureVersionInfoKHR ), "struct and wrapper have different size!" );
18090   static_assert( std::is_standard_layout<AccelerationStructureVersionInfoKHR>::value, "struct wrapper is not a standard layout!" );
18091 
18092   template <>
18093   struct CppType<StructureType, StructureType::eAccelerationStructureVersionInfoKHR>
18094   {
18095     using Type = AccelerationStructureVersionInfoKHR;
18096   };
18097 
18098   class SwapchainKHR
18099   {
18100   public:
18101     using CType = VkSwapchainKHR;
18102 
18103     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR;
18104     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
18105 
18106   public:
SwapchainKHR()18107     VULKAN_HPP_CONSTEXPR SwapchainKHR() VULKAN_HPP_NOEXCEPT
18108       : m_swapchainKHR(VK_NULL_HANDLE)
18109     {}
18110 
SwapchainKHR(std::nullptr_t)18111     VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
18112       : m_swapchainKHR(VK_NULL_HANDLE)
18113     {}
18114 
SwapchainKHR(VkSwapchainKHR swapchainKHR)18115     VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT
18116       : m_swapchainKHR( swapchainKHR )
18117     {}
18118 
18119 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSwapchainKHR swapchainKHR)18120     SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR) VULKAN_HPP_NOEXCEPT
18121     {
18122       m_swapchainKHR = swapchainKHR;
18123       return *this;
18124     }
18125 #endif
18126 
operator =(std::nullptr_t)18127     SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
18128     {
18129       m_swapchainKHR = VK_NULL_HANDLE;
18130       return *this;
18131     }
18132 
18133 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18134     auto operator<=>( SwapchainKHR const& ) const = default;
18135 #else
operator ==(SwapchainKHR const & rhs) const18136     bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
18137     {
18138       return m_swapchainKHR == rhs.m_swapchainKHR;
18139     }
18140 
operator !=(SwapchainKHR const & rhs) const18141     bool operator!=(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
18142     {
18143       return m_swapchainKHR != rhs.m_swapchainKHR;
18144     }
18145 
operator <(SwapchainKHR const & rhs) const18146     bool operator<(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
18147     {
18148       return m_swapchainKHR < rhs.m_swapchainKHR;
18149     }
18150 #endif
18151 
operator VkSwapchainKHR() const18152     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT
18153     {
18154       return m_swapchainKHR;
18155     }
18156 
operator bool() const18157     explicit operator bool() const VULKAN_HPP_NOEXCEPT
18158     {
18159       return m_swapchainKHR != VK_NULL_HANDLE;
18160     }
18161 
operator !() const18162     bool operator!() const VULKAN_HPP_NOEXCEPT
18163     {
18164       return m_swapchainKHR == VK_NULL_HANDLE;
18165     }
18166 
18167   private:
18168     VkSwapchainKHR m_swapchainKHR;
18169   };
18170   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" );
18171 
18172   template <>
18173   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSwapchainKHR>
18174   {
18175     using type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
18176   };
18177 
18178   template <>
18179   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR>
18180   {
18181     using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
18182   };
18183 
18184 
18185   template <>
18186   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR>
18187   {
18188     using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
18189   };
18190 
18191 
18192   template <>
18193   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SwapchainKHR>
18194   {
18195     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
18196   };
18197 
18198   class Semaphore
18199   {
18200   public:
18201     using CType = VkSemaphore;
18202 
18203     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore;
18204     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
18205 
18206   public:
Semaphore()18207     VULKAN_HPP_CONSTEXPR Semaphore() VULKAN_HPP_NOEXCEPT
18208       : m_semaphore(VK_NULL_HANDLE)
18209     {}
18210 
Semaphore(std::nullptr_t)18211     VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
18212       : m_semaphore(VK_NULL_HANDLE)
18213     {}
18214 
Semaphore(VkSemaphore semaphore)18215     VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT
18216       : m_semaphore( semaphore )
18217     {}
18218 
18219 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSemaphore semaphore)18220     Semaphore & operator=(VkSemaphore semaphore) VULKAN_HPP_NOEXCEPT
18221     {
18222       m_semaphore = semaphore;
18223       return *this;
18224     }
18225 #endif
18226 
operator =(std::nullptr_t)18227     Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
18228     {
18229       m_semaphore = VK_NULL_HANDLE;
18230       return *this;
18231     }
18232 
18233 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18234     auto operator<=>( Semaphore const& ) const = default;
18235 #else
operator ==(Semaphore const & rhs) const18236     bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
18237     {
18238       return m_semaphore == rhs.m_semaphore;
18239     }
18240 
operator !=(Semaphore const & rhs) const18241     bool operator!=(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
18242     {
18243       return m_semaphore != rhs.m_semaphore;
18244     }
18245 
operator <(Semaphore const & rhs) const18246     bool operator<(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
18247     {
18248       return m_semaphore < rhs.m_semaphore;
18249     }
18250 #endif
18251 
operator VkSemaphore() const18252     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT
18253     {
18254       return m_semaphore;
18255     }
18256 
operator bool() const18257     explicit operator bool() const VULKAN_HPP_NOEXCEPT
18258     {
18259       return m_semaphore != VK_NULL_HANDLE;
18260     }
18261 
operator !() const18262     bool operator!() const VULKAN_HPP_NOEXCEPT
18263     {
18264       return m_semaphore == VK_NULL_HANDLE;
18265     }
18266 
18267   private:
18268     VkSemaphore m_semaphore;
18269   };
18270   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" );
18271 
18272   template <>
18273   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSemaphore>
18274   {
18275     using type = VULKAN_HPP_NAMESPACE::Semaphore;
18276   };
18277 
18278   template <>
18279   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore>
18280   {
18281     using Type = VULKAN_HPP_NAMESPACE::Semaphore;
18282   };
18283 
18284 
18285   template <>
18286   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore>
18287   {
18288     using Type = VULKAN_HPP_NAMESPACE::Semaphore;
18289   };
18290 
18291 
18292   template <>
18293   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Semaphore>
18294   {
18295     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
18296   };
18297 
18298   class Fence
18299   {
18300   public:
18301     using CType = VkFence;
18302 
18303     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence;
18304     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
18305 
18306   public:
Fence()18307     VULKAN_HPP_CONSTEXPR Fence() VULKAN_HPP_NOEXCEPT
18308       : m_fence(VK_NULL_HANDLE)
18309     {}
18310 
Fence(std::nullptr_t)18311     VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
18312       : m_fence(VK_NULL_HANDLE)
18313     {}
18314 
Fence(VkFence fence)18315     VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT
18316       : m_fence( fence )
18317     {}
18318 
18319 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFence fence)18320     Fence & operator=(VkFence fence) VULKAN_HPP_NOEXCEPT
18321     {
18322       m_fence = fence;
18323       return *this;
18324     }
18325 #endif
18326 
operator =(std::nullptr_t)18327     Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
18328     {
18329       m_fence = VK_NULL_HANDLE;
18330       return *this;
18331     }
18332 
18333 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18334     auto operator<=>( Fence const& ) const = default;
18335 #else
operator ==(Fence const & rhs) const18336     bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
18337     {
18338       return m_fence == rhs.m_fence;
18339     }
18340 
operator !=(Fence const & rhs) const18341     bool operator!=(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
18342     {
18343       return m_fence != rhs.m_fence;
18344     }
18345 
operator <(Fence const & rhs) const18346     bool operator<(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
18347     {
18348       return m_fence < rhs.m_fence;
18349     }
18350 #endif
18351 
operator VkFence() const18352     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT
18353     {
18354       return m_fence;
18355     }
18356 
operator bool() const18357     explicit operator bool() const VULKAN_HPP_NOEXCEPT
18358     {
18359       return m_fence != VK_NULL_HANDLE;
18360     }
18361 
operator !() const18362     bool operator!() const VULKAN_HPP_NOEXCEPT
18363     {
18364       return m_fence == VK_NULL_HANDLE;
18365     }
18366 
18367   private:
18368     VkFence m_fence;
18369   };
18370   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" );
18371 
18372   template <>
18373   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFence>
18374   {
18375     using type = VULKAN_HPP_NAMESPACE::Fence;
18376   };
18377 
18378   template <>
18379   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eFence>
18380   {
18381     using Type = VULKAN_HPP_NAMESPACE::Fence;
18382   };
18383 
18384 
18385   template <>
18386   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence>
18387   {
18388     using Type = VULKAN_HPP_NAMESPACE::Fence;
18389   };
18390 
18391 
18392   template <>
18393   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Fence>
18394   {
18395     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
18396   };
18397 
18398   struct AcquireNextImageInfoKHR
18399   {
18400     static const bool allowDuplicate = false;
18401     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR;
18402 
18403 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18404     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
18405     : swapchain( swapchain_ ), timeout( timeout_ ), semaphore( semaphore_ ), fence( fence_ ), deviceMask( deviceMask_ )
18406     {}
18407 
18408     VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18409 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18410     AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
18411       : AcquireNextImageInfoKHR( *reinterpret_cast<AcquireNextImageInfoKHR const *>( &rhs ) )
18412     {}
18413 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18414 
18415     VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18416 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18417     AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
18418     {
18419       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const *>( &rhs );
18420       return *this;
18421     }
18422 
setPNextVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18423     AcquireNextImageInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18424     {
18425       pNext = pNext_;
18426       return *this;
18427     }
18428 
setSwapchainVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18429     AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
18430     {
18431       swapchain = swapchain_;
18432       return *this;
18433     }
18434 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18435     AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
18436     {
18437       timeout = timeout_;
18438       return *this;
18439     }
18440 
setSemaphoreVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18441     AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
18442     {
18443       semaphore = semaphore_;
18444       return *this;
18445     }
18446 
setFenceVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18447     AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
18448     {
18449       fence = fence_;
18450       return *this;
18451     }
18452 
setDeviceMaskVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18453     AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
18454     {
18455       deviceMask = deviceMask_;
18456       return *this;
18457     }
18458 
18459 
operator VkAcquireNextImageInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18460     operator VkAcquireNextImageInfoKHR const&() const VULKAN_HPP_NOEXCEPT
18461     {
18462       return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>( this );
18463     }
18464 
operator VkAcquireNextImageInfoKHR&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18465     operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
18466     {
18467       return *reinterpret_cast<VkAcquireNextImageInfoKHR*>( this );
18468     }
18469 
18470 
18471 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18472     auto operator<=>( AcquireNextImageInfoKHR const& ) const = default;
18473 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18474     bool operator==( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
18475     {
18476       return ( sType == rhs.sType )
18477           && ( pNext == rhs.pNext )
18478           && ( swapchain == rhs.swapchain )
18479           && ( timeout == rhs.timeout )
18480           && ( semaphore == rhs.semaphore )
18481           && ( fence == rhs.fence )
18482           && ( deviceMask == rhs.deviceMask );
18483     }
18484 
operator !=VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18485     bool operator!=( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
18486     {
18487       return !operator==( rhs );
18488     }
18489 #endif
18490 
18491 
18492 
18493   public:
18494     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
18495     const void* pNext = {};
18496     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
18497     uint64_t timeout = {};
18498     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
18499     VULKAN_HPP_NAMESPACE::Fence fence = {};
18500     uint32_t deviceMask = {};
18501 
18502   };
18503   static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" );
18504   static_assert( std::is_standard_layout<AcquireNextImageInfoKHR>::value, "struct wrapper is not a standard layout!" );
18505 
18506   template <>
18507   struct CppType<StructureType, StructureType::eAcquireNextImageInfoKHR>
18508   {
18509     using Type = AcquireNextImageInfoKHR;
18510   };
18511 
18512   struct AcquireProfilingLockInfoKHR
18513   {
18514     static const bool allowDuplicate = false;
18515     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR;
18516 
18517 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18518     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR(VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, uint64_t timeout_ = {}) VULKAN_HPP_NOEXCEPT
18519     : flags( flags_ ), timeout( timeout_ )
18520     {}
18521 
18522     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18523 
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18524     AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
18525       : AcquireProfilingLockInfoKHR( *reinterpret_cast<AcquireProfilingLockInfoKHR const *>( &rhs ) )
18526     {}
18527 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18528 
18529     VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18530 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18531     AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
18532     {
18533       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const *>( &rhs );
18534       return *this;
18535     }
18536 
setPNextVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18537     AcquireProfilingLockInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18538     {
18539       pNext = pNext_;
18540       return *this;
18541     }
18542 
setFlagsVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18543     AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
18544     {
18545       flags = flags_;
18546       return *this;
18547     }
18548 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18549     AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
18550     {
18551       timeout = timeout_;
18552       return *this;
18553     }
18554 
18555 
operator VkAcquireProfilingLockInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18556     operator VkAcquireProfilingLockInfoKHR const&() const VULKAN_HPP_NOEXCEPT
18557     {
18558       return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR*>( this );
18559     }
18560 
operator VkAcquireProfilingLockInfoKHR&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18561     operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
18562     {
18563       return *reinterpret_cast<VkAcquireProfilingLockInfoKHR*>( this );
18564     }
18565 
18566 
18567 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18568     auto operator<=>( AcquireProfilingLockInfoKHR const& ) const = default;
18569 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18570     bool operator==( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
18571     {
18572       return ( sType == rhs.sType )
18573           && ( pNext == rhs.pNext )
18574           && ( flags == rhs.flags )
18575           && ( timeout == rhs.timeout );
18576     }
18577 
operator !=VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR18578     bool operator!=( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
18579     {
18580       return !operator==( rhs );
18581     }
18582 #endif
18583 
18584 
18585 
18586   public:
18587     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR;
18588     const void* pNext = {};
18589     VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {};
18590     uint64_t timeout = {};
18591 
18592   };
18593   static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), "struct and wrapper have different size!" );
18594   static_assert( std::is_standard_layout<AcquireProfilingLockInfoKHR>::value, "struct wrapper is not a standard layout!" );
18595 
18596   template <>
18597   struct CppType<StructureType, StructureType::eAcquireProfilingLockInfoKHR>
18598   {
18599     using Type = AcquireProfilingLockInfoKHR;
18600   };
18601 
18602   struct AllocationCallbacks
18603   {
18604 
18605 
18606 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks18607     VULKAN_HPP_CONSTEXPR AllocationCallbacks(void* pUserData_ = {}, PFN_vkAllocationFunction pfnAllocation_ = {}, PFN_vkReallocationFunction pfnReallocation_ = {}, PFN_vkFreeFunction pfnFree_ = {}, PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, PFN_vkInternalFreeNotification pfnInternalFree_ = {}) VULKAN_HPP_NOEXCEPT
18608     : pUserData( pUserData_ ), pfnAllocation( pfnAllocation_ ), pfnReallocation( pfnReallocation_ ), pfnFree( pfnFree_ ), pfnInternalAllocation( pfnInternalAllocation_ ), pfnInternalFree( pfnInternalFree_ )
18609     {}
18610 
18611     VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18612 
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks18613     AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
18614       : AllocationCallbacks( *reinterpret_cast<AllocationCallbacks const *>( &rhs ) )
18615     {}
18616 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18617 
18618     VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18619 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks18620     AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
18621     {
18622       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AllocationCallbacks const *>( &rhs );
18623       return *this;
18624     }
18625 
setPUserDataVULKAN_HPP_NAMESPACE::AllocationCallbacks18626     AllocationCallbacks & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
18627     {
18628       pUserData = pUserData_;
18629       return *this;
18630     }
18631 
setPfnAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks18632     AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT
18633     {
18634       pfnAllocation = pfnAllocation_;
18635       return *this;
18636     }
18637 
setPfnReallocationVULKAN_HPP_NAMESPACE::AllocationCallbacks18638     AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT
18639     {
18640       pfnReallocation = pfnReallocation_;
18641       return *this;
18642     }
18643 
setPfnFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks18644     AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT
18645     {
18646       pfnFree = pfnFree_;
18647       return *this;
18648     }
18649 
setPfnInternalAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks18650     AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT
18651     {
18652       pfnInternalAllocation = pfnInternalAllocation_;
18653       return *this;
18654     }
18655 
setPfnInternalFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks18656     AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT
18657     {
18658       pfnInternalFree = pfnInternalFree_;
18659       return *this;
18660     }
18661 
18662 
operator VkAllocationCallbacks const&VULKAN_HPP_NAMESPACE::AllocationCallbacks18663     operator VkAllocationCallbacks const&() const VULKAN_HPP_NOEXCEPT
18664     {
18665       return *reinterpret_cast<const VkAllocationCallbacks*>( this );
18666     }
18667 
operator VkAllocationCallbacks&VULKAN_HPP_NAMESPACE::AllocationCallbacks18668     operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
18669     {
18670       return *reinterpret_cast<VkAllocationCallbacks*>( this );
18671     }
18672 
18673 
18674 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18675     auto operator<=>( AllocationCallbacks const& ) const = default;
18676 #else
operator ==VULKAN_HPP_NAMESPACE::AllocationCallbacks18677     bool operator==( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
18678     {
18679       return ( pUserData == rhs.pUserData )
18680           && ( pfnAllocation == rhs.pfnAllocation )
18681           && ( pfnReallocation == rhs.pfnReallocation )
18682           && ( pfnFree == rhs.pfnFree )
18683           && ( pfnInternalAllocation == rhs.pfnInternalAllocation )
18684           && ( pfnInternalFree == rhs.pfnInternalFree );
18685     }
18686 
operator !=VULKAN_HPP_NAMESPACE::AllocationCallbacks18687     bool operator!=( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
18688     {
18689       return !operator==( rhs );
18690     }
18691 #endif
18692 
18693 
18694 
18695   public:
18696     void* pUserData = {};
18697     PFN_vkAllocationFunction pfnAllocation = {};
18698     PFN_vkReallocationFunction pfnReallocation = {};
18699     PFN_vkFreeFunction pfnFree = {};
18700     PFN_vkInternalAllocationNotification pfnInternalAllocation = {};
18701     PFN_vkInternalFreeNotification pfnInternalFree = {};
18702 
18703   };
18704   static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" );
18705   static_assert( std::is_standard_layout<AllocationCallbacks>::value, "struct wrapper is not a standard layout!" );
18706 
18707   struct ComponentMapping
18708   {
18709 
18710 
18711 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping18712     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
18713     : r( r_ ), g( g_ ), b( b_ ), a( a_ )
18714     {}
18715 
18716     VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18717 
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping18718     ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
18719       : ComponentMapping( *reinterpret_cast<ComponentMapping const *>( &rhs ) )
18720     {}
18721 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18722 
18723     VULKAN_HPP_CONSTEXPR_14 ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18724 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping18725     ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
18726     {
18727       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComponentMapping const *>( &rhs );
18728       return *this;
18729     }
18730 
setRVULKAN_HPP_NAMESPACE::ComponentMapping18731     ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
18732     {
18733       r = r_;
18734       return *this;
18735     }
18736 
setGVULKAN_HPP_NAMESPACE::ComponentMapping18737     ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT
18738     {
18739       g = g_;
18740       return *this;
18741     }
18742 
setBVULKAN_HPP_NAMESPACE::ComponentMapping18743     ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT
18744     {
18745       b = b_;
18746       return *this;
18747     }
18748 
setAVULKAN_HPP_NAMESPACE::ComponentMapping18749     ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT
18750     {
18751       a = a_;
18752       return *this;
18753     }
18754 
18755 
operator VkComponentMapping const&VULKAN_HPP_NAMESPACE::ComponentMapping18756     operator VkComponentMapping const&() const VULKAN_HPP_NOEXCEPT
18757     {
18758       return *reinterpret_cast<const VkComponentMapping*>( this );
18759     }
18760 
operator VkComponentMapping&VULKAN_HPP_NAMESPACE::ComponentMapping18761     operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
18762     {
18763       return *reinterpret_cast<VkComponentMapping*>( this );
18764     }
18765 
18766 
18767 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18768     auto operator<=>( ComponentMapping const& ) const = default;
18769 #else
operator ==VULKAN_HPP_NAMESPACE::ComponentMapping18770     bool operator==( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
18771     {
18772       return ( r == rhs.r )
18773           && ( g == rhs.g )
18774           && ( b == rhs.b )
18775           && ( a == rhs.a );
18776     }
18777 
operator !=VULKAN_HPP_NAMESPACE::ComponentMapping18778     bool operator!=( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
18779     {
18780       return !operator==( rhs );
18781     }
18782 #endif
18783 
18784 
18785 
18786   public:
18787     VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
18788     VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
18789     VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
18790     VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
18791 
18792   };
18793   static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" );
18794   static_assert( std::is_standard_layout<ComponentMapping>::value, "struct wrapper is not a standard layout!" );
18795 
18796 #ifdef VK_USE_PLATFORM_ANDROID_KHR
18797   struct AndroidHardwareBufferFormatPropertiesANDROID
18798   {
18799     static const bool allowDuplicate = false;
18800     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
18801 
18802 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18803     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
18804     : format( format_ ), externalFormat( externalFormat_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ )
18805     {}
18806 
18807     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18808 
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18809     AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
18810       : AndroidHardwareBufferFormatPropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs ) )
18811     {}
18812 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18813 
18814     VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18815 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18816     AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
18817     {
18818       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs );
18819       return *this;
18820     }
18821 
18822 
operator VkAndroidHardwareBufferFormatPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18823     operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
18824     {
18825       return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
18826     }
18827 
operator VkAndroidHardwareBufferFormatPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18828     operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
18829     {
18830       return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
18831     }
18832 
18833 
18834 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18835     auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const& ) const = default;
18836 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18837     bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
18838     {
18839       return ( sType == rhs.sType )
18840           && ( pNext == rhs.pNext )
18841           && ( format == rhs.format )
18842           && ( externalFormat == rhs.externalFormat )
18843           && ( formatFeatures == rhs.formatFeatures )
18844           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
18845           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
18846           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
18847           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
18848           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
18849     }
18850 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18851     bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
18852     {
18853       return !operator==( rhs );
18854     }
18855 #endif
18856 
18857 
18858 
18859   public:
18860     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
18861     void* pNext = {};
18862     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
18863     uint64_t externalFormat = {};
18864     VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
18865     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
18866     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
18867     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
18868     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
18869     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
18870 
18871   };
18872   static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" );
18873   static_assert( std::is_standard_layout<AndroidHardwareBufferFormatPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
18874 
18875   template <>
18876   struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatPropertiesANDROID>
18877   {
18878     using Type = AndroidHardwareBufferFormatPropertiesANDROID;
18879   };
18880 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
18881 
18882 #ifdef VK_USE_PLATFORM_ANDROID_KHR
18883   struct AndroidHardwareBufferPropertiesANDROID
18884   {
18885     static const bool allowDuplicate = false;
18886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
18887 
18888 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18889     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
18890     : allocationSize( allocationSize_ ), memoryTypeBits( memoryTypeBits_ )
18891     {}
18892 
18893     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18894 
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18895     AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
18896       : AndroidHardwareBufferPropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferPropertiesANDROID const *>( &rhs ) )
18897     {}
18898 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18899 
18900     VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18901 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18902     AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
18903     {
18904       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const *>( &rhs );
18905       return *this;
18906     }
18907 
18908 
operator VkAndroidHardwareBufferPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18909     operator VkAndroidHardwareBufferPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
18910     {
18911       return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>( this );
18912     }
18913 
operator VkAndroidHardwareBufferPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18914     operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
18915     {
18916       return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( this );
18917     }
18918 
18919 
18920 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18921     auto operator<=>( AndroidHardwareBufferPropertiesANDROID const& ) const = default;
18922 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18923     bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
18924     {
18925       return ( sType == rhs.sType )
18926           && ( pNext == rhs.pNext )
18927           && ( allocationSize == rhs.allocationSize )
18928           && ( memoryTypeBits == rhs.memoryTypeBits );
18929     }
18930 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18931     bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
18932     {
18933       return !operator==( rhs );
18934     }
18935 #endif
18936 
18937 
18938 
18939   public:
18940     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
18941     void* pNext = {};
18942     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
18943     uint32_t memoryTypeBits = {};
18944 
18945   };
18946   static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" );
18947   static_assert( std::is_standard_layout<AndroidHardwareBufferPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
18948 
18949   template <>
18950   struct CppType<StructureType, StructureType::eAndroidHardwareBufferPropertiesANDROID>
18951   {
18952     using Type = AndroidHardwareBufferPropertiesANDROID;
18953   };
18954 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
18955 
18956 #ifdef VK_USE_PLATFORM_ANDROID_KHR
18957   struct AndroidHardwareBufferUsageANDROID
18958   {
18959     static const bool allowDuplicate = false;
18960     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID;
18961 
18962 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID18963     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID(uint64_t androidHardwareBufferUsage_ = {}) VULKAN_HPP_NOEXCEPT
18964     : androidHardwareBufferUsage( androidHardwareBufferUsage_ )
18965     {}
18966 
18967     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18968 
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID18969     AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
18970       : AndroidHardwareBufferUsageANDROID( *reinterpret_cast<AndroidHardwareBufferUsageANDROID const *>( &rhs ) )
18971     {}
18972 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18973 
18974     VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18975 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID18976     AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
18977     {
18978       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const *>( &rhs );
18979       return *this;
18980     }
18981 
18982 
operator VkAndroidHardwareBufferUsageANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID18983     operator VkAndroidHardwareBufferUsageANDROID const&() const VULKAN_HPP_NOEXCEPT
18984     {
18985       return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>( this );
18986     }
18987 
operator VkAndroidHardwareBufferUsageANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID18988     operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
18989     {
18990       return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>( this );
18991     }
18992 
18993 
18994 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18995     auto operator<=>( AndroidHardwareBufferUsageANDROID const& ) const = default;
18996 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID18997     bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
18998     {
18999       return ( sType == rhs.sType )
19000           && ( pNext == rhs.pNext )
19001           && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
19002     }
19003 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID19004     bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
19005     {
19006       return !operator==( rhs );
19007     }
19008 #endif
19009 
19010 
19011 
19012   public:
19013     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
19014     void* pNext = {};
19015     uint64_t androidHardwareBufferUsage = {};
19016 
19017   };
19018   static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" );
19019   static_assert( std::is_standard_layout<AndroidHardwareBufferUsageANDROID>::value, "struct wrapper is not a standard layout!" );
19020 
19021   template <>
19022   struct CppType<StructureType, StructureType::eAndroidHardwareBufferUsageANDROID>
19023   {
19024     using Type = AndroidHardwareBufferUsageANDROID;
19025   };
19026 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
19027 
19028 #ifdef VK_USE_PLATFORM_ANDROID_KHR
19029   struct AndroidSurfaceCreateInfoKHR
19030   {
19031     static const bool allowDuplicate = false;
19032     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR;
19033 
19034 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19035     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, struct ANativeWindow* window_ = {}) VULKAN_HPP_NOEXCEPT
19036     : flags( flags_ ), window( window_ )
19037     {}
19038 
19039     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19040 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19041     AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19042       : AndroidSurfaceCreateInfoKHR( *reinterpret_cast<AndroidSurfaceCreateInfoKHR const *>( &rhs ) )
19043     {}
19044 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19045 
19046     VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19047 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19048     AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19049     {
19050       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const *>( &rhs );
19051       return *this;
19052     }
19053 
setPNextVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19054     AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19055     {
19056       pNext = pNext_;
19057       return *this;
19058     }
19059 
setFlagsVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19060     AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
19061     {
19062       flags = flags_;
19063       return *this;
19064     }
19065 
setWindowVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19066     AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ ) VULKAN_HPP_NOEXCEPT
19067     {
19068       window = window_;
19069       return *this;
19070     }
19071 
19072 
operator VkAndroidSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19073     operator VkAndroidSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
19074     {
19075       return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( this );
19076     }
19077 
operator VkAndroidSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19078     operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
19079     {
19080       return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>( this );
19081     }
19082 
19083 
19084 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19085     auto operator<=>( AndroidSurfaceCreateInfoKHR const& ) const = default;
19086 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19087     bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
19088     {
19089       return ( sType == rhs.sType )
19090           && ( pNext == rhs.pNext )
19091           && ( flags == rhs.flags )
19092           && ( window == rhs.window );
19093     }
19094 
operator !=VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19095     bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
19096     {
19097       return !operator==( rhs );
19098     }
19099 #endif
19100 
19101 
19102 
19103   public:
19104     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
19105     const void* pNext = {};
19106     VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {};
19107     struct ANativeWindow* window = {};
19108 
19109   };
19110   static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
19111   static_assert( std::is_standard_layout<AndroidSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
19112 
19113   template <>
19114   struct CppType<StructureType, StructureType::eAndroidSurfaceCreateInfoKHR>
19115   {
19116     using Type = AndroidSurfaceCreateInfoKHR;
19117   };
19118 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
19119 
19120   struct ApplicationInfo
19121   {
19122     static const bool allowDuplicate = false;
19123     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo;
19124 
19125 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo19126     VULKAN_HPP_CONSTEXPR ApplicationInfo(const char* pApplicationName_ = {}, uint32_t applicationVersion_ = {}, const char* pEngineName_ = {}, uint32_t engineVersion_ = {}, uint32_t apiVersion_ = {}) VULKAN_HPP_NOEXCEPT
19127     : pApplicationName( pApplicationName_ ), applicationVersion( applicationVersion_ ), pEngineName( pEngineName_ ), engineVersion( engineVersion_ ), apiVersion( apiVersion_ )
19128     {}
19129 
19130     VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19131 
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo19132     ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19133       : ApplicationInfo( *reinterpret_cast<ApplicationInfo const *>( &rhs ) )
19134     {}
19135 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19136 
19137     VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19138 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo19139     ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19140     {
19141       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ApplicationInfo const *>( &rhs );
19142       return *this;
19143     }
19144 
setPNextVULKAN_HPP_NAMESPACE::ApplicationInfo19145     ApplicationInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19146     {
19147       pNext = pNext_;
19148       return *this;
19149     }
19150 
setPApplicationNameVULKAN_HPP_NAMESPACE::ApplicationInfo19151     ApplicationInfo & setPApplicationName( const char* pApplicationName_ ) VULKAN_HPP_NOEXCEPT
19152     {
19153       pApplicationName = pApplicationName_;
19154       return *this;
19155     }
19156 
setApplicationVersionVULKAN_HPP_NAMESPACE::ApplicationInfo19157     ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
19158     {
19159       applicationVersion = applicationVersion_;
19160       return *this;
19161     }
19162 
setPEngineNameVULKAN_HPP_NAMESPACE::ApplicationInfo19163     ApplicationInfo & setPEngineName( const char* pEngineName_ ) VULKAN_HPP_NOEXCEPT
19164     {
19165       pEngineName = pEngineName_;
19166       return *this;
19167     }
19168 
setEngineVersionVULKAN_HPP_NAMESPACE::ApplicationInfo19169     ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
19170     {
19171       engineVersion = engineVersion_;
19172       return *this;
19173     }
19174 
setApiVersionVULKAN_HPP_NAMESPACE::ApplicationInfo19175     ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
19176     {
19177       apiVersion = apiVersion_;
19178       return *this;
19179     }
19180 
19181 
operator VkApplicationInfo const&VULKAN_HPP_NAMESPACE::ApplicationInfo19182     operator VkApplicationInfo const&() const VULKAN_HPP_NOEXCEPT
19183     {
19184       return *reinterpret_cast<const VkApplicationInfo*>( this );
19185     }
19186 
operator VkApplicationInfo&VULKAN_HPP_NAMESPACE::ApplicationInfo19187     operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
19188     {
19189       return *reinterpret_cast<VkApplicationInfo*>( this );
19190     }
19191 
19192 
19193 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19194     auto operator<=>( ApplicationInfo const& ) const = default;
19195 #else
operator ==VULKAN_HPP_NAMESPACE::ApplicationInfo19196     bool operator==( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19197     {
19198       return ( sType == rhs.sType )
19199           && ( pNext == rhs.pNext )
19200           && ( pApplicationName == rhs.pApplicationName )
19201           && ( applicationVersion == rhs.applicationVersion )
19202           && ( pEngineName == rhs.pEngineName )
19203           && ( engineVersion == rhs.engineVersion )
19204           && ( apiVersion == rhs.apiVersion );
19205     }
19206 
operator !=VULKAN_HPP_NAMESPACE::ApplicationInfo19207     bool operator!=( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19208     {
19209       return !operator==( rhs );
19210     }
19211 #endif
19212 
19213 
19214 
19215   public:
19216     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo;
19217     const void* pNext = {};
19218     const char* pApplicationName = {};
19219     uint32_t applicationVersion = {};
19220     const char* pEngineName = {};
19221     uint32_t engineVersion = {};
19222     uint32_t apiVersion = {};
19223 
19224   };
19225   static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" );
19226   static_assert( std::is_standard_layout<ApplicationInfo>::value, "struct wrapper is not a standard layout!" );
19227 
19228   template <>
19229   struct CppType<StructureType, StructureType::eApplicationInfo>
19230   {
19231     using Type = ApplicationInfo;
19232   };
19233 
19234   struct AttachmentDescription
19235   {
19236 
19237 
19238 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription19239     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
19240     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
19241     {}
19242 
19243     VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19244 
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription19245     AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
19246       : AttachmentDescription( *reinterpret_cast<AttachmentDescription const *>( &rhs ) )
19247     {}
19248 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19249 
19250     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19251 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription19252     AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
19253     {
19254       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription const *>( &rhs );
19255       return *this;
19256     }
19257 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription19258     AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
19259     {
19260       flags = flags_;
19261       return *this;
19262     }
19263 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription19264     AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
19265     {
19266       format = format_;
19267       return *this;
19268     }
19269 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription19270     AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
19271     {
19272       samples = samples_;
19273       return *this;
19274     }
19275 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription19276     AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
19277     {
19278       loadOp = loadOp_;
19279       return *this;
19280     }
19281 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription19282     AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
19283     {
19284       storeOp = storeOp_;
19285       return *this;
19286     }
19287 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription19288     AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
19289     {
19290       stencilLoadOp = stencilLoadOp_;
19291       return *this;
19292     }
19293 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription19294     AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
19295     {
19296       stencilStoreOp = stencilStoreOp_;
19297       return *this;
19298     }
19299 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription19300     AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
19301     {
19302       initialLayout = initialLayout_;
19303       return *this;
19304     }
19305 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription19306     AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
19307     {
19308       finalLayout = finalLayout_;
19309       return *this;
19310     }
19311 
19312 
operator VkAttachmentDescription const&VULKAN_HPP_NAMESPACE::AttachmentDescription19313     operator VkAttachmentDescription const&() const VULKAN_HPP_NOEXCEPT
19314     {
19315       return *reinterpret_cast<const VkAttachmentDescription*>( this );
19316     }
19317 
operator VkAttachmentDescription&VULKAN_HPP_NAMESPACE::AttachmentDescription19318     operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
19319     {
19320       return *reinterpret_cast<VkAttachmentDescription*>( this );
19321     }
19322 
19323 
19324 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19325     auto operator<=>( AttachmentDescription const& ) const = default;
19326 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription19327     bool operator==( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
19328     {
19329       return ( flags == rhs.flags )
19330           && ( format == rhs.format )
19331           && ( samples == rhs.samples )
19332           && ( loadOp == rhs.loadOp )
19333           && ( storeOp == rhs.storeOp )
19334           && ( stencilLoadOp == rhs.stencilLoadOp )
19335           && ( stencilStoreOp == rhs.stencilStoreOp )
19336           && ( initialLayout == rhs.initialLayout )
19337           && ( finalLayout == rhs.finalLayout );
19338     }
19339 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription19340     bool operator!=( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
19341     {
19342       return !operator==( rhs );
19343     }
19344 #endif
19345 
19346 
19347 
19348   public:
19349     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
19350     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
19351     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
19352     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
19353     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
19354     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
19355     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
19356     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19357     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19358 
19359   };
19360   static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" );
19361   static_assert( std::is_standard_layout<AttachmentDescription>::value, "struct wrapper is not a standard layout!" );
19362 
19363   struct AttachmentDescription2
19364   {
19365     static const bool allowDuplicate = false;
19366     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2;
19367 
19368 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription219369     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
19370     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
19371     {}
19372 
19373     VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19374 
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription219375     AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
19376       : AttachmentDescription2( *reinterpret_cast<AttachmentDescription2 const *>( &rhs ) )
19377     {}
19378 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19379 
19380     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19381 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription219382     AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
19383     {
19384       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription2 const *>( &rhs );
19385       return *this;
19386     }
19387 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescription219388     AttachmentDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19389     {
19390       pNext = pNext_;
19391       return *this;
19392     }
19393 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription219394     AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
19395     {
19396       flags = flags_;
19397       return *this;
19398     }
19399 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription219400     AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
19401     {
19402       format = format_;
19403       return *this;
19404     }
19405 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription219406     AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
19407     {
19408       samples = samples_;
19409       return *this;
19410     }
19411 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription219412     AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
19413     {
19414       loadOp = loadOp_;
19415       return *this;
19416     }
19417 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription219418     AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
19419     {
19420       storeOp = storeOp_;
19421       return *this;
19422     }
19423 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription219424     AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
19425     {
19426       stencilLoadOp = stencilLoadOp_;
19427       return *this;
19428     }
19429 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription219430     AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
19431     {
19432       stencilStoreOp = stencilStoreOp_;
19433       return *this;
19434     }
19435 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription219436     AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
19437     {
19438       initialLayout = initialLayout_;
19439       return *this;
19440     }
19441 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription219442     AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
19443     {
19444       finalLayout = finalLayout_;
19445       return *this;
19446     }
19447 
19448 
operator VkAttachmentDescription2 const&VULKAN_HPP_NAMESPACE::AttachmentDescription219449     operator VkAttachmentDescription2 const&() const VULKAN_HPP_NOEXCEPT
19450     {
19451       return *reinterpret_cast<const VkAttachmentDescription2*>( this );
19452     }
19453 
operator VkAttachmentDescription2&VULKAN_HPP_NAMESPACE::AttachmentDescription219454     operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
19455     {
19456       return *reinterpret_cast<VkAttachmentDescription2*>( this );
19457     }
19458 
19459 
19460 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19461     auto operator<=>( AttachmentDescription2 const& ) const = default;
19462 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription219463     bool operator==( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
19464     {
19465       return ( sType == rhs.sType )
19466           && ( pNext == rhs.pNext )
19467           && ( flags == rhs.flags )
19468           && ( format == rhs.format )
19469           && ( samples == rhs.samples )
19470           && ( loadOp == rhs.loadOp )
19471           && ( storeOp == rhs.storeOp )
19472           && ( stencilLoadOp == rhs.stencilLoadOp )
19473           && ( stencilStoreOp == rhs.stencilStoreOp )
19474           && ( initialLayout == rhs.initialLayout )
19475           && ( finalLayout == rhs.finalLayout );
19476     }
19477 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription219478     bool operator!=( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
19479     {
19480       return !operator==( rhs );
19481     }
19482 #endif
19483 
19484 
19485 
19486   public:
19487     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2;
19488     const void* pNext = {};
19489     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
19490     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
19491     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
19492     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
19493     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
19494     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
19495     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
19496     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19497     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19498 
19499   };
19500   static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), "struct and wrapper have different size!" );
19501   static_assert( std::is_standard_layout<AttachmentDescription2>::value, "struct wrapper is not a standard layout!" );
19502 
19503   template <>
19504   struct CppType<StructureType, StructureType::eAttachmentDescription2>
19505   {
19506     using Type = AttachmentDescription2;
19507   };
19508   using AttachmentDescription2KHR = AttachmentDescription2;
19509 
19510   struct AttachmentDescriptionStencilLayout
19511   {
19512     static const bool allowDuplicate = false;
19513     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout;
19514 
19515 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19516     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
19517     : stencilInitialLayout( stencilInitialLayout_ ), stencilFinalLayout( stencilFinalLayout_ )
19518     {}
19519 
19520     VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19521 
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19522     AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
19523       : AttachmentDescriptionStencilLayout( *reinterpret_cast<AttachmentDescriptionStencilLayout const *>( &rhs ) )
19524     {}
19525 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19526 
19527     VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19528 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19529     AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
19530     {
19531       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const *>( &rhs );
19532       return *this;
19533     }
19534 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19535     AttachmentDescriptionStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
19536     {
19537       pNext = pNext_;
19538       return *this;
19539     }
19540 
setStencilInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19541     AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
19542     {
19543       stencilInitialLayout = stencilInitialLayout_;
19544       return *this;
19545     }
19546 
setStencilFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19547     AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
19548     {
19549       stencilFinalLayout = stencilFinalLayout_;
19550       return *this;
19551     }
19552 
19553 
operator VkAttachmentDescriptionStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19554     operator VkAttachmentDescriptionStencilLayout const&() const VULKAN_HPP_NOEXCEPT
19555     {
19556       return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>( this );
19557     }
19558 
operator VkAttachmentDescriptionStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19559     operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
19560     {
19561       return *reinterpret_cast<VkAttachmentDescriptionStencilLayout*>( this );
19562     }
19563 
19564 
19565 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19566     auto operator<=>( AttachmentDescriptionStencilLayout const& ) const = default;
19567 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19568     bool operator==( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
19569     {
19570       return ( sType == rhs.sType )
19571           && ( pNext == rhs.pNext )
19572           && ( stencilInitialLayout == rhs.stencilInitialLayout )
19573           && ( stencilFinalLayout == rhs.stencilFinalLayout );
19574     }
19575 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout19576     bool operator!=( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
19577     {
19578       return !operator==( rhs );
19579     }
19580 #endif
19581 
19582 
19583 
19584   public:
19585     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout;
19586     void* pNext = {};
19587     VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19588     VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19589 
19590   };
19591   static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), "struct and wrapper have different size!" );
19592   static_assert( std::is_standard_layout<AttachmentDescriptionStencilLayout>::value, "struct wrapper is not a standard layout!" );
19593 
19594   template <>
19595   struct CppType<StructureType, StructureType::eAttachmentDescriptionStencilLayout>
19596   {
19597     using Type = AttachmentDescriptionStencilLayout;
19598   };
19599   using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
19600 
19601   struct AttachmentReference
19602   {
19603 
19604 
19605 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference19606     VULKAN_HPP_CONSTEXPR AttachmentReference(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
19607     : attachment( attachment_ ), layout( layout_ )
19608     {}
19609 
19610     VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19611 
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference19612     AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
19613       : AttachmentReference( *reinterpret_cast<AttachmentReference const *>( &rhs ) )
19614     {}
19615 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19616 
19617     VULKAN_HPP_CONSTEXPR_14 AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19618 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference19619     AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
19620     {
19621       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference const *>( &rhs );
19622       return *this;
19623     }
19624 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference19625     AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
19626     {
19627       attachment = attachment_;
19628       return *this;
19629     }
19630 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference19631     AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
19632     {
19633       layout = layout_;
19634       return *this;
19635     }
19636 
19637 
operator VkAttachmentReference const&VULKAN_HPP_NAMESPACE::AttachmentReference19638     operator VkAttachmentReference const&() const VULKAN_HPP_NOEXCEPT
19639     {
19640       return *reinterpret_cast<const VkAttachmentReference*>( this );
19641     }
19642 
operator VkAttachmentReference&VULKAN_HPP_NAMESPACE::AttachmentReference19643     operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
19644     {
19645       return *reinterpret_cast<VkAttachmentReference*>( this );
19646     }
19647 
19648 
19649 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19650     auto operator<=>( AttachmentReference const& ) const = default;
19651 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference19652     bool operator==( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
19653     {
19654       return ( attachment == rhs.attachment )
19655           && ( layout == rhs.layout );
19656     }
19657 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference19658     bool operator!=( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
19659     {
19660       return !operator==( rhs );
19661     }
19662 #endif
19663 
19664 
19665 
19666   public:
19667     uint32_t attachment = {};
19668     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19669 
19670   };
19671   static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" );
19672   static_assert( std::is_standard_layout<AttachmentReference>::value, "struct wrapper is not a standard layout!" );
19673 
19674   struct AttachmentReference2
19675   {
19676     static const bool allowDuplicate = false;
19677     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2;
19678 
19679 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference219680     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
19681     : attachment( attachment_ ), layout( layout_ ), aspectMask( aspectMask_ )
19682     {}
19683 
19684     VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19685 
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference219686     AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
19687       : AttachmentReference2( *reinterpret_cast<AttachmentReference2 const *>( &rhs ) )
19688     {}
19689 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19690 
19691     VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19692 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference219693     AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
19694     {
19695       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference2 const *>( &rhs );
19696       return *this;
19697     }
19698 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReference219699     AttachmentReference2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19700     {
19701       pNext = pNext_;
19702       return *this;
19703     }
19704 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference219705     AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
19706     {
19707       attachment = attachment_;
19708       return *this;
19709     }
19710 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference219711     AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
19712     {
19713       layout = layout_;
19714       return *this;
19715     }
19716 
setAspectMaskVULKAN_HPP_NAMESPACE::AttachmentReference219717     AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
19718     {
19719       aspectMask = aspectMask_;
19720       return *this;
19721     }
19722 
19723 
operator VkAttachmentReference2 const&VULKAN_HPP_NAMESPACE::AttachmentReference219724     operator VkAttachmentReference2 const&() const VULKAN_HPP_NOEXCEPT
19725     {
19726       return *reinterpret_cast<const VkAttachmentReference2*>( this );
19727     }
19728 
operator VkAttachmentReference2&VULKAN_HPP_NAMESPACE::AttachmentReference219729     operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
19730     {
19731       return *reinterpret_cast<VkAttachmentReference2*>( this );
19732     }
19733 
19734 
19735 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19736     auto operator<=>( AttachmentReference2 const& ) const = default;
19737 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference219738     bool operator==( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
19739     {
19740       return ( sType == rhs.sType )
19741           && ( pNext == rhs.pNext )
19742           && ( attachment == rhs.attachment )
19743           && ( layout == rhs.layout )
19744           && ( aspectMask == rhs.aspectMask );
19745     }
19746 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference219747     bool operator!=( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
19748     {
19749       return !operator==( rhs );
19750     }
19751 #endif
19752 
19753 
19754 
19755   public:
19756     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2;
19757     const void* pNext = {};
19758     uint32_t attachment = {};
19759     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19760     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
19761 
19762   };
19763   static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), "struct and wrapper have different size!" );
19764   static_assert( std::is_standard_layout<AttachmentReference2>::value, "struct wrapper is not a standard layout!" );
19765 
19766   template <>
19767   struct CppType<StructureType, StructureType::eAttachmentReference2>
19768   {
19769     using Type = AttachmentReference2;
19770   };
19771   using AttachmentReference2KHR = AttachmentReference2;
19772 
19773   struct AttachmentReferenceStencilLayout
19774   {
19775     static const bool allowDuplicate = false;
19776     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout;
19777 
19778 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19779     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
19780     : stencilLayout( stencilLayout_ )
19781     {}
19782 
19783     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19784 
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19785     AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
19786       : AttachmentReferenceStencilLayout( *reinterpret_cast<AttachmentReferenceStencilLayout const *>( &rhs ) )
19787     {}
19788 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19789 
19790     VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19791 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19792     AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
19793     {
19794       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const *>( &rhs );
19795       return *this;
19796     }
19797 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19798     AttachmentReferenceStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
19799     {
19800       pNext = pNext_;
19801       return *this;
19802     }
19803 
setStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19804     AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT
19805     {
19806       stencilLayout = stencilLayout_;
19807       return *this;
19808     }
19809 
19810 
operator VkAttachmentReferenceStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19811     operator VkAttachmentReferenceStencilLayout const&() const VULKAN_HPP_NOEXCEPT
19812     {
19813       return *reinterpret_cast<const VkAttachmentReferenceStencilLayout*>( this );
19814     }
19815 
operator VkAttachmentReferenceStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19816     operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
19817     {
19818       return *reinterpret_cast<VkAttachmentReferenceStencilLayout*>( this );
19819     }
19820 
19821 
19822 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19823     auto operator<=>( AttachmentReferenceStencilLayout const& ) const = default;
19824 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19825     bool operator==( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
19826     {
19827       return ( sType == rhs.sType )
19828           && ( pNext == rhs.pNext )
19829           && ( stencilLayout == rhs.stencilLayout );
19830     }
19831 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout19832     bool operator!=( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
19833     {
19834       return !operator==( rhs );
19835     }
19836 #endif
19837 
19838 
19839 
19840   public:
19841     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout;
19842     void* pNext = {};
19843     VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
19844 
19845   };
19846   static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), "struct and wrapper have different size!" );
19847   static_assert( std::is_standard_layout<AttachmentReferenceStencilLayout>::value, "struct wrapper is not a standard layout!" );
19848 
19849   template <>
19850   struct CppType<StructureType, StructureType::eAttachmentReferenceStencilLayout>
19851   {
19852     using Type = AttachmentReferenceStencilLayout;
19853   };
19854   using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
19855 
19856   struct Extent2D
19857   {
19858 
19859 
19860 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent2DVULKAN_HPP_NAMESPACE::Extent2D19861     VULKAN_HPP_CONSTEXPR Extent2D(uint32_t width_ = {}, uint32_t height_ = {}) VULKAN_HPP_NOEXCEPT
19862     : width( width_ ), height( height_ )
19863     {}
19864 
19865     VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19866 
Extent2DVULKAN_HPP_NAMESPACE::Extent2D19867     Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
19868       : Extent2D( *reinterpret_cast<Extent2D const *>( &rhs ) )
19869     {}
19870 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19871 
19872     VULKAN_HPP_CONSTEXPR_14 Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19873 
operator =VULKAN_HPP_NAMESPACE::Extent2D19874     Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
19875     {
19876       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent2D const *>( &rhs );
19877       return *this;
19878     }
19879 
setWidthVULKAN_HPP_NAMESPACE::Extent2D19880     Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
19881     {
19882       width = width_;
19883       return *this;
19884     }
19885 
setHeightVULKAN_HPP_NAMESPACE::Extent2D19886     Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
19887     {
19888       height = height_;
19889       return *this;
19890     }
19891 
19892 
operator VkExtent2D const&VULKAN_HPP_NAMESPACE::Extent2D19893     operator VkExtent2D const&() const VULKAN_HPP_NOEXCEPT
19894     {
19895       return *reinterpret_cast<const VkExtent2D*>( this );
19896     }
19897 
operator VkExtent2D&VULKAN_HPP_NAMESPACE::Extent2D19898     operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
19899     {
19900       return *reinterpret_cast<VkExtent2D*>( this );
19901     }
19902 
19903 
19904 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19905     auto operator<=>( Extent2D const& ) const = default;
19906 #else
operator ==VULKAN_HPP_NAMESPACE::Extent2D19907     bool operator==( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19908     {
19909       return ( width == rhs.width )
19910           && ( height == rhs.height );
19911     }
19912 
operator !=VULKAN_HPP_NAMESPACE::Extent2D19913     bool operator!=( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19914     {
19915       return !operator==( rhs );
19916     }
19917 #endif
19918 
19919 
19920 
19921   public:
19922     uint32_t width = {};
19923     uint32_t height = {};
19924 
19925   };
19926   static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" );
19927   static_assert( std::is_standard_layout<Extent2D>::value, "struct wrapper is not a standard layout!" );
19928 
19929   struct SampleLocationEXT
19930   {
19931 
19932 
19933 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT19934     VULKAN_HPP_CONSTEXPR SampleLocationEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
19935     : x( x_ ), y( y_ )
19936     {}
19937 
19938     VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19939 
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT19940     SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19941       : SampleLocationEXT( *reinterpret_cast<SampleLocationEXT const *>( &rhs ) )
19942     {}
19943 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19944 
19945     VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19946 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT19947     SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19948     {
19949       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationEXT const *>( &rhs );
19950       return *this;
19951     }
19952 
setXVULKAN_HPP_NAMESPACE::SampleLocationEXT19953     SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
19954     {
19955       x = x_;
19956       return *this;
19957     }
19958 
setYVULKAN_HPP_NAMESPACE::SampleLocationEXT19959     SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
19960     {
19961       y = y_;
19962       return *this;
19963     }
19964 
19965 
operator VkSampleLocationEXT const&VULKAN_HPP_NAMESPACE::SampleLocationEXT19966     operator VkSampleLocationEXT const&() const VULKAN_HPP_NOEXCEPT
19967     {
19968       return *reinterpret_cast<const VkSampleLocationEXT*>( this );
19969     }
19970 
operator VkSampleLocationEXT&VULKAN_HPP_NAMESPACE::SampleLocationEXT19971     operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
19972     {
19973       return *reinterpret_cast<VkSampleLocationEXT*>( this );
19974     }
19975 
19976 
19977 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19978     auto operator<=>( SampleLocationEXT const& ) const = default;
19979 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationEXT19980     bool operator==( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19981     {
19982       return ( x == rhs.x )
19983           && ( y == rhs.y );
19984     }
19985 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationEXT19986     bool operator!=( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19987     {
19988       return !operator==( rhs );
19989     }
19990 #endif
19991 
19992 
19993 
19994   public:
19995     float x = {};
19996     float y = {};
19997 
19998   };
19999   static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" );
20000   static_assert( std::is_standard_layout<SampleLocationEXT>::value, "struct wrapper is not a standard layout!" );
20001 
20002   struct SampleLocationsInfoEXT
20003   {
20004     static const bool allowDuplicate = false;
20005     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT;
20006 
20007 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20008     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
20009     : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( sampleLocationsCount_ ), pSampleLocations( pSampleLocations_ )
20010     {}
20011 
20012     VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20013 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20014     SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
20015       : SampleLocationsInfoEXT( *reinterpret_cast<SampleLocationsInfoEXT const *>( &rhs ) )
20016     {}
20017 
20018 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20019     SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ )
20020     : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
20021     {}
20022 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20023 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20024 
20025     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20026 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20027     SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
20028     {
20029       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const *>( &rhs );
20030       return *this;
20031     }
20032 
setPNextVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20033     SampleLocationsInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20034     {
20035       pNext = pNext_;
20036       return *this;
20037     }
20038 
setSampleLocationsPerPixelVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20039     SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
20040     {
20041       sampleLocationsPerPixel = sampleLocationsPerPixel_;
20042       return *this;
20043     }
20044 
setSampleLocationGridSizeVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20045     SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
20046     {
20047       sampleLocationGridSize = sampleLocationGridSize_;
20048       return *this;
20049     }
20050 
setSampleLocationsCountVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20051     SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
20052     {
20053       sampleLocationsCount = sampleLocationsCount_;
20054       return *this;
20055     }
20056 
setPSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20057     SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
20058     {
20059       pSampleLocations = pSampleLocations_;
20060       return *this;
20061     }
20062 
20063 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20064     SampleLocationsInfoEXT & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
20065     {
20066       sampleLocationsCount = static_cast<uint32_t>( sampleLocations_.size() );
20067       pSampleLocations = sampleLocations_.data();
20068       return *this;
20069     }
20070 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20071 
20072 
operator VkSampleLocationsInfoEXT const&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20073     operator VkSampleLocationsInfoEXT const&() const VULKAN_HPP_NOEXCEPT
20074     {
20075       return *reinterpret_cast<const VkSampleLocationsInfoEXT*>( this );
20076     }
20077 
operator VkSampleLocationsInfoEXT&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20078     operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
20079     {
20080       return *reinterpret_cast<VkSampleLocationsInfoEXT*>( this );
20081     }
20082 
20083 
20084 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20085     auto operator<=>( SampleLocationsInfoEXT const& ) const = default;
20086 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20087     bool operator==( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
20088     {
20089       return ( sType == rhs.sType )
20090           && ( pNext == rhs.pNext )
20091           && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel )
20092           && ( sampleLocationGridSize == rhs.sampleLocationGridSize )
20093           && ( sampleLocationsCount == rhs.sampleLocationsCount )
20094           && ( pSampleLocations == rhs.pSampleLocations );
20095     }
20096 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT20097     bool operator!=( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
20098     {
20099       return !operator==( rhs );
20100     }
20101 #endif
20102 
20103 
20104 
20105   public:
20106     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT;
20107     const void* pNext = {};
20108     VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
20109     VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {};
20110     uint32_t sampleLocationsCount = {};
20111     const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations = {};
20112 
20113   };
20114   static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" );
20115   static_assert( std::is_standard_layout<SampleLocationsInfoEXT>::value, "struct wrapper is not a standard layout!" );
20116 
20117   template <>
20118   struct CppType<StructureType, StructureType::eSampleLocationsInfoEXT>
20119   {
20120     using Type = SampleLocationsInfoEXT;
20121   };
20122 
20123   struct AttachmentSampleLocationsEXT
20124   {
20125 
20126 
20127 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20128     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT(uint32_t attachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
20129     : attachmentIndex( attachmentIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
20130     {}
20131 
20132     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20133 
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20134     AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
20135       : AttachmentSampleLocationsEXT( *reinterpret_cast<AttachmentSampleLocationsEXT const *>( &rhs ) )
20136     {}
20137 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20138 
20139     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20140 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20141     AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
20142     {
20143       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const *>( &rhs );
20144       return *this;
20145     }
20146 
setAttachmentIndexVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20147     AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
20148     {
20149       attachmentIndex = attachmentIndex_;
20150       return *this;
20151     }
20152 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20153     AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
20154     {
20155       sampleLocationsInfo = sampleLocationsInfo_;
20156       return *this;
20157     }
20158 
20159 
operator VkAttachmentSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20160     operator VkAttachmentSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
20161     {
20162       return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>( this );
20163     }
20164 
operator VkAttachmentSampleLocationsEXT&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20165     operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
20166     {
20167       return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>( this );
20168     }
20169 
20170 
20171 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20172     auto operator<=>( AttachmentSampleLocationsEXT const& ) const = default;
20173 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20174     bool operator==( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
20175     {
20176       return ( attachmentIndex == rhs.attachmentIndex )
20177           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
20178     }
20179 
operator !=VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20180     bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
20181     {
20182       return !operator==( rhs );
20183     }
20184 #endif
20185 
20186 
20187 
20188   public:
20189     uint32_t attachmentIndex = {};
20190     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
20191 
20192   };
20193   static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" );
20194   static_assert( std::is_standard_layout<AttachmentSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
20195 
20196   struct BaseInStructure
20197   {
20198 
20199 
20200 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure20201     BaseInStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT
20202     : sType( sType_ )
20203     {}
20204 
20205     BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20206 
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure20207     BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
20208       : BaseInStructure( *reinterpret_cast<BaseInStructure const *>( &rhs ) )
20209     {}
20210 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20211 
20212     BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20213 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure20214     BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
20215     {
20216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseInStructure const *>( &rhs );
20217       return *this;
20218     }
20219 
setPNextVULKAN_HPP_NAMESPACE::BaseInStructure20220     BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
20221     {
20222       pNext = pNext_;
20223       return *this;
20224     }
20225 
20226 
operator VkBaseInStructure const&VULKAN_HPP_NAMESPACE::BaseInStructure20227     operator VkBaseInStructure const&() const VULKAN_HPP_NOEXCEPT
20228     {
20229       return *reinterpret_cast<const VkBaseInStructure*>( this );
20230     }
20231 
operator VkBaseInStructure&VULKAN_HPP_NAMESPACE::BaseInStructure20232     operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
20233     {
20234       return *reinterpret_cast<VkBaseInStructure*>( this );
20235     }
20236 
20237 
20238 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20239     auto operator<=>( BaseInStructure const& ) const = default;
20240 #else
operator ==VULKAN_HPP_NAMESPACE::BaseInStructure20241     bool operator==( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
20242     {
20243       return ( sType == rhs.sType )
20244           && ( pNext == rhs.pNext );
20245     }
20246 
operator !=VULKAN_HPP_NAMESPACE::BaseInStructure20247     bool operator!=( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
20248     {
20249       return !operator==( rhs );
20250     }
20251 #endif
20252 
20253 
20254 
20255   public:
20256     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
20257     const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext = {};
20258 
20259   };
20260   static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" );
20261   static_assert( std::is_standard_layout<BaseInStructure>::value, "struct wrapper is not a standard layout!" );
20262 
20263   struct BaseOutStructure
20264   {
20265 
20266 
20267 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure20268     BaseOutStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT
20269     : sType( sType_ )
20270     {}
20271 
20272     BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20273 
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure20274     BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
20275       : BaseOutStructure( *reinterpret_cast<BaseOutStructure const *>( &rhs ) )
20276     {}
20277 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20278 
20279     BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20280 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure20281     BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
20282     {
20283       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseOutStructure const *>( &rhs );
20284       return *this;
20285     }
20286 
setPNextVULKAN_HPP_NAMESPACE::BaseOutStructure20287     BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
20288     {
20289       pNext = pNext_;
20290       return *this;
20291     }
20292 
20293 
operator VkBaseOutStructure const&VULKAN_HPP_NAMESPACE::BaseOutStructure20294     operator VkBaseOutStructure const&() const VULKAN_HPP_NOEXCEPT
20295     {
20296       return *reinterpret_cast<const VkBaseOutStructure*>( this );
20297     }
20298 
operator VkBaseOutStructure&VULKAN_HPP_NAMESPACE::BaseOutStructure20299     operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
20300     {
20301       return *reinterpret_cast<VkBaseOutStructure*>( this );
20302     }
20303 
20304 
20305 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20306     auto operator<=>( BaseOutStructure const& ) const = default;
20307 #else
operator ==VULKAN_HPP_NAMESPACE::BaseOutStructure20308     bool operator==( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
20309     {
20310       return ( sType == rhs.sType )
20311           && ( pNext == rhs.pNext );
20312     }
20313 
operator !=VULKAN_HPP_NAMESPACE::BaseOutStructure20314     bool operator!=( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
20315     {
20316       return !operator==( rhs );
20317     }
20318 #endif
20319 
20320 
20321 
20322   public:
20323     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
20324     struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext = {};
20325 
20326   };
20327   static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" );
20328   static_assert( std::is_standard_layout<BaseOutStructure>::value, "struct wrapper is not a standard layout!" );
20329 
20330   class DeviceMemory
20331   {
20332   public:
20333     using CType = VkDeviceMemory;
20334 
20335     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory;
20336     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
20337 
20338   public:
DeviceMemory()20339     VULKAN_HPP_CONSTEXPR DeviceMemory() VULKAN_HPP_NOEXCEPT
20340       : m_deviceMemory(VK_NULL_HANDLE)
20341     {}
20342 
DeviceMemory(std::nullptr_t)20343     VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20344       : m_deviceMemory(VK_NULL_HANDLE)
20345     {}
20346 
DeviceMemory(VkDeviceMemory deviceMemory)20347     VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT
20348       : m_deviceMemory( deviceMemory )
20349     {}
20350 
20351 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeviceMemory deviceMemory)20352     DeviceMemory & operator=(VkDeviceMemory deviceMemory) VULKAN_HPP_NOEXCEPT
20353     {
20354       m_deviceMemory = deviceMemory;
20355       return *this;
20356     }
20357 #endif
20358 
operator =(std::nullptr_t)20359     DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20360     {
20361       m_deviceMemory = VK_NULL_HANDLE;
20362       return *this;
20363     }
20364 
20365 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20366     auto operator<=>( DeviceMemory const& ) const = default;
20367 #else
operator ==(DeviceMemory const & rhs) const20368     bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
20369     {
20370       return m_deviceMemory == rhs.m_deviceMemory;
20371     }
20372 
operator !=(DeviceMemory const & rhs) const20373     bool operator!=(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
20374     {
20375       return m_deviceMemory != rhs.m_deviceMemory;
20376     }
20377 
operator <(DeviceMemory const & rhs) const20378     bool operator<(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
20379     {
20380       return m_deviceMemory < rhs.m_deviceMemory;
20381     }
20382 #endif
20383 
operator VkDeviceMemory() const20384     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT
20385     {
20386       return m_deviceMemory;
20387     }
20388 
operator bool() const20389     explicit operator bool() const VULKAN_HPP_NOEXCEPT
20390     {
20391       return m_deviceMemory != VK_NULL_HANDLE;
20392     }
20393 
operator !() const20394     bool operator!() const VULKAN_HPP_NOEXCEPT
20395     {
20396       return m_deviceMemory == VK_NULL_HANDLE;
20397     }
20398 
20399   private:
20400     VkDeviceMemory m_deviceMemory;
20401   };
20402   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" );
20403 
20404   template <>
20405   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeviceMemory>
20406   {
20407     using type = VULKAN_HPP_NAMESPACE::DeviceMemory;
20408   };
20409 
20410   template <>
20411   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory>
20412   {
20413     using Type = VULKAN_HPP_NAMESPACE::DeviceMemory;
20414   };
20415 
20416 
20417   template <>
20418   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory>
20419   {
20420     using Type = VULKAN_HPP_NAMESPACE::DeviceMemory;
20421   };
20422 
20423 
20424   template <>
20425   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DeviceMemory>
20426   {
20427     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
20428   };
20429 
20430   struct BindAccelerationStructureMemoryInfoNV
20431   {
20432     static const bool allowDuplicate = false;
20433     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoNV;
20434 
20435 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20436     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT
20437     : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
20438     {}
20439 
20440     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20441 
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20442     BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
20443       : BindAccelerationStructureMemoryInfoNV( *reinterpret_cast<BindAccelerationStructureMemoryInfoNV const *>( &rhs ) )
20444     {}
20445 
20446 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20447     BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_, VULKAN_HPP_NAMESPACE::DeviceMemory memory_, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ )
20448     : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
20449     {}
20450 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20451 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20452 
20453     VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & operator=( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20454 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20455     BindAccelerationStructureMemoryInfoNV & operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
20456     {
20457       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV const *>( &rhs );
20458       return *this;
20459     }
20460 
setPNextVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20461     BindAccelerationStructureMemoryInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20462     {
20463       pNext = pNext_;
20464       return *this;
20465     }
20466 
setAccelerationStructureVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20467     BindAccelerationStructureMemoryInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
20468     {
20469       accelerationStructure = accelerationStructure_;
20470       return *this;
20471     }
20472 
setMemoryVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20473     BindAccelerationStructureMemoryInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
20474     {
20475       memory = memory_;
20476       return *this;
20477     }
20478 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20479     BindAccelerationStructureMemoryInfoNV & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
20480     {
20481       memoryOffset = memoryOffset_;
20482       return *this;
20483     }
20484 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20485     BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
20486     {
20487       deviceIndexCount = deviceIndexCount_;
20488       return *this;
20489     }
20490 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20491     BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
20492     {
20493       pDeviceIndices = pDeviceIndices_;
20494       return *this;
20495     }
20496 
20497 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20498     BindAccelerationStructureMemoryInfoNV & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
20499     {
20500       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
20501       pDeviceIndices = deviceIndices_.data();
20502       return *this;
20503     }
20504 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20505 
20506 
operator VkBindAccelerationStructureMemoryInfoNV const&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20507     operator VkBindAccelerationStructureMemoryInfoNV const&() const VULKAN_HPP_NOEXCEPT
20508     {
20509       return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV*>( this );
20510     }
20511 
operator VkBindAccelerationStructureMemoryInfoNV&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20512     operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT
20513     {
20514       return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>( this );
20515     }
20516 
20517 
20518 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20519     auto operator<=>( BindAccelerationStructureMemoryInfoNV const& ) const = default;
20520 #else
operator ==VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20521     bool operator==( BindAccelerationStructureMemoryInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20522     {
20523       return ( sType == rhs.sType )
20524           && ( pNext == rhs.pNext )
20525           && ( accelerationStructure == rhs.accelerationStructure )
20526           && ( memory == rhs.memory )
20527           && ( memoryOffset == rhs.memoryOffset )
20528           && ( deviceIndexCount == rhs.deviceIndexCount )
20529           && ( pDeviceIndices == rhs.pDeviceIndices );
20530     }
20531 
operator !=VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20532     bool operator!=( BindAccelerationStructureMemoryInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20533     {
20534       return !operator==( rhs );
20535     }
20536 #endif
20537 
20538 
20539 
20540   public:
20541     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV;
20542     const void* pNext = {};
20543     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
20544     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
20545     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
20546     uint32_t deviceIndexCount = {};
20547     const uint32_t* pDeviceIndices = {};
20548 
20549   };
20550   static_assert( sizeof( BindAccelerationStructureMemoryInfoNV ) == sizeof( VkBindAccelerationStructureMemoryInfoNV ), "struct and wrapper have different size!" );
20551   static_assert( std::is_standard_layout<BindAccelerationStructureMemoryInfoNV>::value, "struct wrapper is not a standard layout!" );
20552 
20553   template <>
20554   struct CppType<StructureType, StructureType::eBindAccelerationStructureMemoryInfoNV>
20555   {
20556     using Type = BindAccelerationStructureMemoryInfoNV;
20557   };
20558 
20559   struct BindBufferMemoryDeviceGroupInfo
20560   {
20561     static const bool allowDuplicate = false;
20562     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo;
20563 
20564 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20565     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT
20566     : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
20567     {}
20568 
20569     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20570 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20571     BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20572       : BindBufferMemoryDeviceGroupInfo( *reinterpret_cast<BindBufferMemoryDeviceGroupInfo const *>( &rhs ) )
20573     {}
20574 
20575 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20576     BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ )
20577     : deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
20578     {}
20579 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20580 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20581 
20582     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20583 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20584     BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20585     {
20586       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const *>( &rhs );
20587       return *this;
20588     }
20589 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20590     BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20591     {
20592       pNext = pNext_;
20593       return *this;
20594     }
20595 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20596     BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
20597     {
20598       deviceIndexCount = deviceIndexCount_;
20599       return *this;
20600     }
20601 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20602     BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
20603     {
20604       pDeviceIndices = pDeviceIndices_;
20605       return *this;
20606     }
20607 
20608 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20609     BindBufferMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
20610     {
20611       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
20612       pDeviceIndices = deviceIndices_.data();
20613       return *this;
20614     }
20615 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20616 
20617 
operator VkBindBufferMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20618     operator VkBindBufferMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
20619     {
20620       return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>( this );
20621     }
20622 
operator VkBindBufferMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20623     operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
20624     {
20625       return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>( this );
20626     }
20627 
20628 
20629 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20630     auto operator<=>( BindBufferMemoryDeviceGroupInfo const& ) const = default;
20631 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20632     bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20633     {
20634       return ( sType == rhs.sType )
20635           && ( pNext == rhs.pNext )
20636           && ( deviceIndexCount == rhs.deviceIndexCount )
20637           && ( pDeviceIndices == rhs.pDeviceIndices );
20638     }
20639 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20640     bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20641     {
20642       return !operator==( rhs );
20643     }
20644 #endif
20645 
20646 
20647 
20648   public:
20649     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
20650     const void* pNext = {};
20651     uint32_t deviceIndexCount = {};
20652     const uint32_t* pDeviceIndices = {};
20653 
20654   };
20655   static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
20656   static_assert( std::is_standard_layout<BindBufferMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
20657 
20658   template <>
20659   struct CppType<StructureType, StructureType::eBindBufferMemoryDeviceGroupInfo>
20660   {
20661     using Type = BindBufferMemoryDeviceGroupInfo;
20662   };
20663   using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
20664 
20665   struct BindBufferMemoryInfo
20666   {
20667     static const bool allowDuplicate = false;
20668     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo;
20669 
20670 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20671     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT
20672     : buffer( buffer_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
20673     {}
20674 
20675     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20676 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20677     BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20678       : BindBufferMemoryInfo( *reinterpret_cast<BindBufferMemoryInfo const *>( &rhs ) )
20679     {}
20680 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20681 
20682     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20683 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20684     BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20685     {
20686       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const *>( &rhs );
20687       return *this;
20688     }
20689 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20690     BindBufferMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20691     {
20692       pNext = pNext_;
20693       return *this;
20694     }
20695 
setBufferVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20696     BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
20697     {
20698       buffer = buffer_;
20699       return *this;
20700     }
20701 
setMemoryVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20702     BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
20703     {
20704       memory = memory_;
20705       return *this;
20706     }
20707 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20708     BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
20709     {
20710       memoryOffset = memoryOffset_;
20711       return *this;
20712     }
20713 
20714 
operator VkBindBufferMemoryInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20715     operator VkBindBufferMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
20716     {
20717       return *reinterpret_cast<const VkBindBufferMemoryInfo*>( this );
20718     }
20719 
operator VkBindBufferMemoryInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20720     operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
20721     {
20722       return *reinterpret_cast<VkBindBufferMemoryInfo*>( this );
20723     }
20724 
20725 
20726 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20727     auto operator<=>( BindBufferMemoryInfo const& ) const = default;
20728 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20729     bool operator==( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20730     {
20731       return ( sType == rhs.sType )
20732           && ( pNext == rhs.pNext )
20733           && ( buffer == rhs.buffer )
20734           && ( memory == rhs.memory )
20735           && ( memoryOffset == rhs.memoryOffset );
20736     }
20737 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20738     bool operator!=( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20739     {
20740       return !operator==( rhs );
20741     }
20742 #endif
20743 
20744 
20745 
20746   public:
20747     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo;
20748     const void* pNext = {};
20749     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
20750     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
20751     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
20752 
20753   };
20754   static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" );
20755   static_assert( std::is_standard_layout<BindBufferMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20756 
20757   template <>
20758   struct CppType<StructureType, StructureType::eBindBufferMemoryInfo>
20759   {
20760     using Type = BindBufferMemoryInfo;
20761   };
20762   using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
20763 
20764   struct Offset2D
20765   {
20766 
20767 
20768 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset2DVULKAN_HPP_NAMESPACE::Offset2D20769     VULKAN_HPP_CONSTEXPR Offset2D(int32_t x_ = {}, int32_t y_ = {}) VULKAN_HPP_NOEXCEPT
20770     : x( x_ ), y( y_ )
20771     {}
20772 
20773     VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20774 
Offset2DVULKAN_HPP_NAMESPACE::Offset2D20775     Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
20776       : Offset2D( *reinterpret_cast<Offset2D const *>( &rhs ) )
20777     {}
20778 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20779 
20780     VULKAN_HPP_CONSTEXPR_14 Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20781 
operator =VULKAN_HPP_NAMESPACE::Offset2D20782     Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
20783     {
20784       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset2D const *>( &rhs );
20785       return *this;
20786     }
20787 
setXVULKAN_HPP_NAMESPACE::Offset2D20788     Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
20789     {
20790       x = x_;
20791       return *this;
20792     }
20793 
setYVULKAN_HPP_NAMESPACE::Offset2D20794     Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
20795     {
20796       y = y_;
20797       return *this;
20798     }
20799 
20800 
operator VkOffset2D const&VULKAN_HPP_NAMESPACE::Offset2D20801     operator VkOffset2D const&() const VULKAN_HPP_NOEXCEPT
20802     {
20803       return *reinterpret_cast<const VkOffset2D*>( this );
20804     }
20805 
operator VkOffset2D&VULKAN_HPP_NAMESPACE::Offset2D20806     operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
20807     {
20808       return *reinterpret_cast<VkOffset2D*>( this );
20809     }
20810 
20811 
20812 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20813     auto operator<=>( Offset2D const& ) const = default;
20814 #else
operator ==VULKAN_HPP_NAMESPACE::Offset2D20815     bool operator==( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
20816     {
20817       return ( x == rhs.x )
20818           && ( y == rhs.y );
20819     }
20820 
operator !=VULKAN_HPP_NAMESPACE::Offset2D20821     bool operator!=( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
20822     {
20823       return !operator==( rhs );
20824     }
20825 #endif
20826 
20827 
20828 
20829   public:
20830     int32_t x = {};
20831     int32_t y = {};
20832 
20833   };
20834   static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" );
20835   static_assert( std::is_standard_layout<Offset2D>::value, "struct wrapper is not a standard layout!" );
20836 
20837   struct Rect2D
20838   {
20839 
20840 
20841 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Rect2DVULKAN_HPP_NAMESPACE::Rect2D20842     VULKAN_HPP_CONSTEXPR Rect2D(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}) VULKAN_HPP_NOEXCEPT
20843     : offset( offset_ ), extent( extent_ )
20844     {}
20845 
20846     VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20847 
Rect2DVULKAN_HPP_NAMESPACE::Rect2D20848     Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
20849       : Rect2D( *reinterpret_cast<Rect2D const *>( &rhs ) )
20850     {}
20851 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20852 
20853     VULKAN_HPP_CONSTEXPR_14 Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20854 
operator =VULKAN_HPP_NAMESPACE::Rect2D20855     Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
20856     {
20857       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Rect2D const *>( &rhs );
20858       return *this;
20859     }
20860 
setOffsetVULKAN_HPP_NAMESPACE::Rect2D20861     Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
20862     {
20863       offset = offset_;
20864       return *this;
20865     }
20866 
setExtentVULKAN_HPP_NAMESPACE::Rect2D20867     Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
20868     {
20869       extent = extent_;
20870       return *this;
20871     }
20872 
20873 
operator VkRect2D const&VULKAN_HPP_NAMESPACE::Rect2D20874     operator VkRect2D const&() const VULKAN_HPP_NOEXCEPT
20875     {
20876       return *reinterpret_cast<const VkRect2D*>( this );
20877     }
20878 
operator VkRect2D&VULKAN_HPP_NAMESPACE::Rect2D20879     operator VkRect2D &() VULKAN_HPP_NOEXCEPT
20880     {
20881       return *reinterpret_cast<VkRect2D*>( this );
20882     }
20883 
20884 
20885 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20886     auto operator<=>( Rect2D const& ) const = default;
20887 #else
operator ==VULKAN_HPP_NAMESPACE::Rect2D20888     bool operator==( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
20889     {
20890       return ( offset == rhs.offset )
20891           && ( extent == rhs.extent );
20892     }
20893 
operator !=VULKAN_HPP_NAMESPACE::Rect2D20894     bool operator!=( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
20895     {
20896       return !operator==( rhs );
20897     }
20898 #endif
20899 
20900 
20901 
20902   public:
20903     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
20904     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
20905 
20906   };
20907   static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" );
20908   static_assert( std::is_standard_layout<Rect2D>::value, "struct wrapper is not a standard layout!" );
20909 
20910   struct BindImageMemoryDeviceGroupInfo
20911   {
20912     static const bool allowDuplicate = false;
20913     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo;
20914 
20915 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20916     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}, uint32_t splitInstanceBindRegionCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ = {}) VULKAN_HPP_NOEXCEPT
20917     : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ), splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ), pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
20918     {}
20919 
20920     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20921 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20922     BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20923       : BindImageMemoryDeviceGroupInfo( *reinterpret_cast<BindImageMemoryDeviceGroupInfo const *>( &rhs ) )
20924     {}
20925 
20926 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20927     BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ = {} )
20928     : deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ), splitInstanceBindRegionCount( static_cast<uint32_t>( splitInstanceBindRegions_.size() ) ), pSplitInstanceBindRegions( splitInstanceBindRegions_.data() )
20929     {}
20930 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20931 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20932 
20933     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20934 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20935     BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20936     {
20937       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const *>( &rhs );
20938       return *this;
20939     }
20940 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20941     BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20942     {
20943       pNext = pNext_;
20944       return *this;
20945     }
20946 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20947     BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
20948     {
20949       deviceIndexCount = deviceIndexCount_;
20950       return *this;
20951     }
20952 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20953     BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
20954     {
20955       pDeviceIndices = pDeviceIndices_;
20956       return *this;
20957     }
20958 
20959 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20960     BindImageMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
20961     {
20962       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
20963       pDeviceIndices = deviceIndices_.data();
20964       return *this;
20965     }
20966 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20967 
setSplitInstanceBindRegionCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20968     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
20969     {
20970       splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
20971       return *this;
20972     }
20973 
setPSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20974     BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
20975     {
20976       pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
20977       return *this;
20978     }
20979 
20980 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20981     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
20982     {
20983       splitInstanceBindRegionCount = static_cast<uint32_t>( splitInstanceBindRegions_.size() );
20984       pSplitInstanceBindRegions = splitInstanceBindRegions_.data();
20985       return *this;
20986     }
20987 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20988 
20989 
operator VkBindImageMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20990     operator VkBindImageMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
20991     {
20992       return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>( this );
20993     }
20994 
operator VkBindImageMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20995     operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
20996     {
20997       return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>( this );
20998     }
20999 
21000 
21001 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21002     auto operator<=>( BindImageMemoryDeviceGroupInfo const& ) const = default;
21003 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo21004     bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21005     {
21006       return ( sType == rhs.sType )
21007           && ( pNext == rhs.pNext )
21008           && ( deviceIndexCount == rhs.deviceIndexCount )
21009           && ( pDeviceIndices == rhs.pDeviceIndices )
21010           && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount )
21011           && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
21012     }
21013 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo21014     bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21015     {
21016       return !operator==( rhs );
21017     }
21018 #endif
21019 
21020 
21021 
21022   public:
21023     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
21024     const void* pNext = {};
21025     uint32_t deviceIndexCount = {};
21026     const uint32_t* pDeviceIndices = {};
21027     uint32_t splitInstanceBindRegionCount = {};
21028     const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions = {};
21029 
21030   };
21031   static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
21032   static_assert( std::is_standard_layout<BindImageMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
21033 
21034   template <>
21035   struct CppType<StructureType, StructureType::eBindImageMemoryDeviceGroupInfo>
21036   {
21037     using Type = BindImageMemoryDeviceGroupInfo;
21038   };
21039   using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
21040 
21041   class Image
21042   {
21043   public:
21044     using CType = VkImage;
21045 
21046     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage;
21047     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
21048 
21049   public:
Image()21050     VULKAN_HPP_CONSTEXPR Image() VULKAN_HPP_NOEXCEPT
21051       : m_image(VK_NULL_HANDLE)
21052     {}
21053 
Image(std::nullptr_t)21054     VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
21055       : m_image(VK_NULL_HANDLE)
21056     {}
21057 
Image(VkImage image)21058     VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT
21059       : m_image( image )
21060     {}
21061 
21062 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImage image)21063     Image & operator=(VkImage image) VULKAN_HPP_NOEXCEPT
21064     {
21065       m_image = image;
21066       return *this;
21067     }
21068 #endif
21069 
operator =(std::nullptr_t)21070     Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
21071     {
21072       m_image = VK_NULL_HANDLE;
21073       return *this;
21074     }
21075 
21076 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21077     auto operator<=>( Image const& ) const = default;
21078 #else
operator ==(Image const & rhs) const21079     bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT
21080     {
21081       return m_image == rhs.m_image;
21082     }
21083 
operator !=(Image const & rhs) const21084     bool operator!=(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
21085     {
21086       return m_image != rhs.m_image;
21087     }
21088 
operator <(Image const & rhs) const21089     bool operator<(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
21090     {
21091       return m_image < rhs.m_image;
21092     }
21093 #endif
21094 
operator VkImage() const21095     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT
21096     {
21097       return m_image;
21098     }
21099 
operator bool() const21100     explicit operator bool() const VULKAN_HPP_NOEXCEPT
21101     {
21102       return m_image != VK_NULL_HANDLE;
21103     }
21104 
operator !() const21105     bool operator!() const VULKAN_HPP_NOEXCEPT
21106     {
21107       return m_image == VK_NULL_HANDLE;
21108     }
21109 
21110   private:
21111     VkImage m_image;
21112   };
21113   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Image ) == sizeof( VkImage ), "handle and wrapper have different size!" );
21114 
21115   template <>
21116   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImage>
21117   {
21118     using type = VULKAN_HPP_NAMESPACE::Image;
21119   };
21120 
21121   template <>
21122   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImage>
21123   {
21124     using Type = VULKAN_HPP_NAMESPACE::Image;
21125   };
21126 
21127 
21128   template <>
21129   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage>
21130   {
21131     using Type = VULKAN_HPP_NAMESPACE::Image;
21132   };
21133 
21134 
21135   template <>
21136   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Image>
21137   {
21138     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
21139   };
21140 
21141   struct BindImageMemoryInfo
21142   {
21143     static const bool allowDuplicate = false;
21144     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo;
21145 
21146 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo21147     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT
21148     : image( image_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
21149     {}
21150 
21151     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21152 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo21153     BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21154       : BindImageMemoryInfo( *reinterpret_cast<BindImageMemoryInfo const *>( &rhs ) )
21155     {}
21156 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21157 
21158     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21159 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo21160     BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21161     {
21162       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const *>( &rhs );
21163       return *this;
21164     }
21165 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryInfo21166     BindImageMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21167     {
21168       pNext = pNext_;
21169       return *this;
21170     }
21171 
setImageVULKAN_HPP_NAMESPACE::BindImageMemoryInfo21172     BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
21173     {
21174       image = image_;
21175       return *this;
21176     }
21177 
setMemoryVULKAN_HPP_NAMESPACE::BindImageMemoryInfo21178     BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
21179     {
21180       memory = memory_;
21181       return *this;
21182     }
21183 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindImageMemoryInfo21184     BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
21185     {
21186       memoryOffset = memoryOffset_;
21187       return *this;
21188     }
21189 
21190 
operator VkBindImageMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo21191     operator VkBindImageMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
21192     {
21193       return *reinterpret_cast<const VkBindImageMemoryInfo*>( this );
21194     }
21195 
operator VkBindImageMemoryInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo21196     operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
21197     {
21198       return *reinterpret_cast<VkBindImageMemoryInfo*>( this );
21199     }
21200 
21201 
21202 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21203     auto operator<=>( BindImageMemoryInfo const& ) const = default;
21204 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryInfo21205     bool operator==( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21206     {
21207       return ( sType == rhs.sType )
21208           && ( pNext == rhs.pNext )
21209           && ( image == rhs.image )
21210           && ( memory == rhs.memory )
21211           && ( memoryOffset == rhs.memoryOffset );
21212     }
21213 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryInfo21214     bool operator!=( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21215     {
21216       return !operator==( rhs );
21217     }
21218 #endif
21219 
21220 
21221 
21222   public:
21223     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo;
21224     const void* pNext = {};
21225     VULKAN_HPP_NAMESPACE::Image image = {};
21226     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
21227     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
21228 
21229   };
21230   static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" );
21231   static_assert( std::is_standard_layout<BindImageMemoryInfo>::value, "struct wrapper is not a standard layout!" );
21232 
21233   template <>
21234   struct CppType<StructureType, StructureType::eBindImageMemoryInfo>
21235   {
21236     using Type = BindImageMemoryInfo;
21237   };
21238   using BindImageMemoryInfoKHR = BindImageMemoryInfo;
21239 
21240   struct BindImageMemorySwapchainInfoKHR
21241   {
21242     static const bool allowDuplicate = false;
21243     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR;
21244 
21245 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21246     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint32_t imageIndex_ = {}) VULKAN_HPP_NOEXCEPT
21247     : swapchain( swapchain_ ), imageIndex( imageIndex_ )
21248     {}
21249 
21250     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21251 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21252     BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21253       : BindImageMemorySwapchainInfoKHR( *reinterpret_cast<BindImageMemorySwapchainInfoKHR const *>( &rhs ) )
21254     {}
21255 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21256 
21257     VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21258 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21259     BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
21260     {
21261       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const *>( &rhs );
21262       return *this;
21263     }
21264 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21265     BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21266     {
21267       pNext = pNext_;
21268       return *this;
21269     }
21270 
setSwapchainVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21271     BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
21272     {
21273       swapchain = swapchain_;
21274       return *this;
21275     }
21276 
setImageIndexVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21277     BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT
21278     {
21279       imageIndex = imageIndex_;
21280       return *this;
21281     }
21282 
21283 
operator VkBindImageMemorySwapchainInfoKHR const&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21284     operator VkBindImageMemorySwapchainInfoKHR const&() const VULKAN_HPP_NOEXCEPT
21285     {
21286       return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>( this );
21287     }
21288 
operator VkBindImageMemorySwapchainInfoKHR&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21289     operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
21290     {
21291       return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>( this );
21292     }
21293 
21294 
21295 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21296     auto operator<=>( BindImageMemorySwapchainInfoKHR const& ) const = default;
21297 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21298     bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21299     {
21300       return ( sType == rhs.sType )
21301           && ( pNext == rhs.pNext )
21302           && ( swapchain == rhs.swapchain )
21303           && ( imageIndex == rhs.imageIndex );
21304     }
21305 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR21306     bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21307     {
21308       return !operator==( rhs );
21309     }
21310 #endif
21311 
21312 
21313 
21314   public:
21315     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
21316     const void* pNext = {};
21317     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
21318     uint32_t imageIndex = {};
21319 
21320   };
21321   static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" );
21322   static_assert( std::is_standard_layout<BindImageMemorySwapchainInfoKHR>::value, "struct wrapper is not a standard layout!" );
21323 
21324   template <>
21325   struct CppType<StructureType, StructureType::eBindImageMemorySwapchainInfoKHR>
21326   {
21327     using Type = BindImageMemorySwapchainInfoKHR;
21328   };
21329 
21330   struct BindImagePlaneMemoryInfo
21331   {
21332     static const bool allowDuplicate = false;
21333     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo;
21334 
21335 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21336     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT
21337     : planeAspect( planeAspect_ )
21338     {}
21339 
21340     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21341 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21342     BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21343       : BindImagePlaneMemoryInfo( *reinterpret_cast<BindImagePlaneMemoryInfo const *>( &rhs ) )
21344     {}
21345 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21346 
21347     VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21348 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21349     BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21350     {
21351       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const *>( &rhs );
21352       return *this;
21353     }
21354 
setPNextVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21355     BindImagePlaneMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21356     {
21357       pNext = pNext_;
21358       return *this;
21359     }
21360 
setPlaneAspectVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21361     BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
21362     {
21363       planeAspect = planeAspect_;
21364       return *this;
21365     }
21366 
21367 
operator VkBindImagePlaneMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21368     operator VkBindImagePlaneMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
21369     {
21370       return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>( this );
21371     }
21372 
operator VkBindImagePlaneMemoryInfo&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21373     operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
21374     {
21375       return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>( this );
21376     }
21377 
21378 
21379 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21380     auto operator<=>( BindImagePlaneMemoryInfo const& ) const = default;
21381 #else
operator ==VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21382     bool operator==( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21383     {
21384       return ( sType == rhs.sType )
21385           && ( pNext == rhs.pNext )
21386           && ( planeAspect == rhs.planeAspect );
21387     }
21388 
operator !=VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21389     bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21390     {
21391       return !operator==( rhs );
21392     }
21393 #endif
21394 
21395 
21396 
21397   public:
21398     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
21399     const void* pNext = {};
21400     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
21401 
21402   };
21403   static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" );
21404   static_assert( std::is_standard_layout<BindImagePlaneMemoryInfo>::value, "struct wrapper is not a standard layout!" );
21405 
21406   template <>
21407   struct CppType<StructureType, StructureType::eBindImagePlaneMemoryInfo>
21408   {
21409     using Type = BindImagePlaneMemoryInfo;
21410   };
21411   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
21412 
21413   struct BindIndexBufferIndirectCommandNV
21414   {
21415 
21416 
21417 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21418     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
21419     : bufferAddress( bufferAddress_ ), size( size_ ), indexType( indexType_ )
21420     {}
21421 
21422     VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21423 
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21424     BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21425       : BindIndexBufferIndirectCommandNV( *reinterpret_cast<BindIndexBufferIndirectCommandNV const *>( &rhs ) )
21426     {}
21427 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21428 
21429     VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21430 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21431     BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21432     {
21433       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const *>( &rhs );
21434       return *this;
21435     }
21436 
setBufferAddressVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21437     BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
21438     {
21439       bufferAddress = bufferAddress_;
21440       return *this;
21441     }
21442 
setSizeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21443     BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
21444     {
21445       size = size_;
21446       return *this;
21447     }
21448 
setIndexTypeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21449     BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
21450     {
21451       indexType = indexType_;
21452       return *this;
21453     }
21454 
21455 
operator VkBindIndexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21456     operator VkBindIndexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
21457     {
21458       return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV*>( this );
21459     }
21460 
operator VkBindIndexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21461     operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
21462     {
21463       return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV*>( this );
21464     }
21465 
21466 
21467 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21468     auto operator<=>( BindIndexBufferIndirectCommandNV const& ) const = default;
21469 #else
operator ==VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21470     bool operator==( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21471     {
21472       return ( bufferAddress == rhs.bufferAddress )
21473           && ( size == rhs.size )
21474           && ( indexType == rhs.indexType );
21475     }
21476 
operator !=VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV21477     bool operator!=( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21478     {
21479       return !operator==( rhs );
21480     }
21481 #endif
21482 
21483 
21484 
21485   public:
21486     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
21487     uint32_t size = {};
21488     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
21489 
21490   };
21491   static_assert( sizeof( BindIndexBufferIndirectCommandNV ) == sizeof( VkBindIndexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
21492   static_assert( std::is_standard_layout<BindIndexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
21493 
21494   struct BindShaderGroupIndirectCommandNV
21495   {
21496 
21497 
21498 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV21499     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV(uint32_t groupIndex_ = {}) VULKAN_HPP_NOEXCEPT
21500     : groupIndex( groupIndex_ )
21501     {}
21502 
21503     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21504 
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV21505     BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21506       : BindShaderGroupIndirectCommandNV( *reinterpret_cast<BindShaderGroupIndirectCommandNV const *>( &rhs ) )
21507     {}
21508 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21509 
21510     VULKAN_HPP_CONSTEXPR_14 BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21511 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV21512     BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21513     {
21514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const *>( &rhs );
21515       return *this;
21516     }
21517 
setGroupIndexVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV21518     BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
21519     {
21520       groupIndex = groupIndex_;
21521       return *this;
21522     }
21523 
21524 
operator VkBindShaderGroupIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV21525     operator VkBindShaderGroupIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
21526     {
21527       return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV*>( this );
21528     }
21529 
operator VkBindShaderGroupIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV21530     operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
21531     {
21532       return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV*>( this );
21533     }
21534 
21535 
21536 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21537     auto operator<=>( BindShaderGroupIndirectCommandNV const& ) const = default;
21538 #else
operator ==VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV21539     bool operator==( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21540     {
21541       return ( groupIndex == rhs.groupIndex );
21542     }
21543 
operator !=VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV21544     bool operator!=( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21545     {
21546       return !operator==( rhs );
21547     }
21548 #endif
21549 
21550 
21551 
21552   public:
21553     uint32_t groupIndex = {};
21554 
21555   };
21556   static_assert( sizeof( BindShaderGroupIndirectCommandNV ) == sizeof( VkBindShaderGroupIndirectCommandNV ), "struct and wrapper have different size!" );
21557   static_assert( std::is_standard_layout<BindShaderGroupIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
21558 
21559   struct SparseMemoryBind
21560   {
21561 
21562 
21563 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind21564     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
21565     : resourceOffset( resourceOffset_ ), size( size_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
21566     {}
21567 
21568     VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21569 
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind21570     SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21571       : SparseMemoryBind( *reinterpret_cast<SparseMemoryBind const *>( &rhs ) )
21572     {}
21573 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21574 
21575     VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21576 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind21577     SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21578     {
21579       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseMemoryBind const *>( &rhs );
21580       return *this;
21581     }
21582 
setResourceOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind21583     SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
21584     {
21585       resourceOffset = resourceOffset_;
21586       return *this;
21587     }
21588 
setSizeVULKAN_HPP_NAMESPACE::SparseMemoryBind21589     SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
21590     {
21591       size = size_;
21592       return *this;
21593     }
21594 
setMemoryVULKAN_HPP_NAMESPACE::SparseMemoryBind21595     SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
21596     {
21597       memory = memory_;
21598       return *this;
21599     }
21600 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind21601     SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
21602     {
21603       memoryOffset = memoryOffset_;
21604       return *this;
21605     }
21606 
setFlagsVULKAN_HPP_NAMESPACE::SparseMemoryBind21607     SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
21608     {
21609       flags = flags_;
21610       return *this;
21611     }
21612 
21613 
operator VkSparseMemoryBind const&VULKAN_HPP_NAMESPACE::SparseMemoryBind21614     operator VkSparseMemoryBind const&() const VULKAN_HPP_NOEXCEPT
21615     {
21616       return *reinterpret_cast<const VkSparseMemoryBind*>( this );
21617     }
21618 
operator VkSparseMemoryBind&VULKAN_HPP_NAMESPACE::SparseMemoryBind21619     operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
21620     {
21621       return *reinterpret_cast<VkSparseMemoryBind*>( this );
21622     }
21623 
21624 
21625 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21626     auto operator<=>( SparseMemoryBind const& ) const = default;
21627 #else
operator ==VULKAN_HPP_NAMESPACE::SparseMemoryBind21628     bool operator==( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
21629     {
21630       return ( resourceOffset == rhs.resourceOffset )
21631           && ( size == rhs.size )
21632           && ( memory == rhs.memory )
21633           && ( memoryOffset == rhs.memoryOffset )
21634           && ( flags == rhs.flags );
21635     }
21636 
operator !=VULKAN_HPP_NAMESPACE::SparseMemoryBind21637     bool operator!=( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
21638     {
21639       return !operator==( rhs );
21640     }
21641 #endif
21642 
21643 
21644 
21645   public:
21646     VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {};
21647     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
21648     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
21649     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
21650     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
21651 
21652   };
21653   static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" );
21654   static_assert( std::is_standard_layout<SparseMemoryBind>::value, "struct wrapper is not a standard layout!" );
21655 
21656   struct SparseBufferMemoryBindInfo
21657   {
21658 
21659 
21660 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21661     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
21662     : buffer( buffer_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
21663     {}
21664 
21665     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21666 
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21667     SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21668       : SparseBufferMemoryBindInfo( *reinterpret_cast<SparseBufferMemoryBindInfo const *>( &rhs ) )
21669     {}
21670 
21671 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21672     SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
21673     : buffer( buffer_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
21674     {}
21675 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21676 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21677 
21678     VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21679 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21680     SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21681     {
21682       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const *>( &rhs );
21683       return *this;
21684     }
21685 
setBufferVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21686     SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
21687     {
21688       buffer = buffer_;
21689       return *this;
21690     }
21691 
setBindCountVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21692     SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
21693     {
21694       bindCount = bindCount_;
21695       return *this;
21696     }
21697 
setPBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21698     SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
21699     {
21700       pBinds = pBinds_;
21701       return *this;
21702     }
21703 
21704 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21705     SparseBufferMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
21706     {
21707       bindCount = static_cast<uint32_t>( binds_.size() );
21708       pBinds = binds_.data();
21709       return *this;
21710     }
21711 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21712 
21713 
operator VkSparseBufferMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21714     operator VkSparseBufferMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
21715     {
21716       return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>( this );
21717     }
21718 
operator VkSparseBufferMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21719     operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
21720     {
21721       return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>( this );
21722     }
21723 
21724 
21725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21726     auto operator<=>( SparseBufferMemoryBindInfo const& ) const = default;
21727 #else
operator ==VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21728     bool operator==( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21729     {
21730       return ( buffer == rhs.buffer )
21731           && ( bindCount == rhs.bindCount )
21732           && ( pBinds == rhs.pBinds );
21733     }
21734 
operator !=VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21735     bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21736     {
21737       return !operator==( rhs );
21738     }
21739 #endif
21740 
21741 
21742 
21743   public:
21744     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
21745     uint32_t bindCount = {};
21746     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
21747 
21748   };
21749   static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" );
21750   static_assert( std::is_standard_layout<SparseBufferMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
21751 
21752   struct SparseImageOpaqueMemoryBindInfo
21753   {
21754 
21755 
21756 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21757     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
21758     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
21759     {}
21760 
21761     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21762 
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21763     SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21764       : SparseImageOpaqueMemoryBindInfo( *reinterpret_cast<SparseImageOpaqueMemoryBindInfo const *>( &rhs ) )
21765     {}
21766 
21767 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21768     SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
21769     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
21770     {}
21771 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21772 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21773 
21774     VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21775 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21776     SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21777     {
21778       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const *>( &rhs );
21779       return *this;
21780     }
21781 
setImageVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21782     SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
21783     {
21784       image = image_;
21785       return *this;
21786     }
21787 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21788     SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
21789     {
21790       bindCount = bindCount_;
21791       return *this;
21792     }
21793 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21794     SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
21795     {
21796       pBinds = pBinds_;
21797       return *this;
21798     }
21799 
21800 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21801     SparseImageOpaqueMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
21802     {
21803       bindCount = static_cast<uint32_t>( binds_.size() );
21804       pBinds = binds_.data();
21805       return *this;
21806     }
21807 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21808 
21809 
operator VkSparseImageOpaqueMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21810     operator VkSparseImageOpaqueMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
21811     {
21812       return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>( this );
21813     }
21814 
operator VkSparseImageOpaqueMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21815     operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
21816     {
21817       return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>( this );
21818     }
21819 
21820 
21821 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21822     auto operator<=>( SparseImageOpaqueMemoryBindInfo const& ) const = default;
21823 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21824     bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21825     {
21826       return ( image == rhs.image )
21827           && ( bindCount == rhs.bindCount )
21828           && ( pBinds == rhs.pBinds );
21829     }
21830 
operator !=VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21831     bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21832     {
21833       return !operator==( rhs );
21834     }
21835 #endif
21836 
21837 
21838 
21839   public:
21840     VULKAN_HPP_NAMESPACE::Image image = {};
21841     uint32_t bindCount = {};
21842     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
21843 
21844   };
21845   static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" );
21846   static_assert( std::is_standard_layout<SparseImageOpaqueMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
21847 
21848   struct ImageSubresource
21849   {
21850 
21851 
21852 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource21853     VULKAN_HPP_CONSTEXPR ImageSubresource(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {}) VULKAN_HPP_NOEXCEPT
21854     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), arrayLayer( arrayLayer_ )
21855     {}
21856 
21857     VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21858 
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource21859     ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
21860       : ImageSubresource( *reinterpret_cast<ImageSubresource const *>( &rhs ) )
21861     {}
21862 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21863 
21864     VULKAN_HPP_CONSTEXPR_14 ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21865 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource21866     ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
21867     {
21868       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource const *>( &rhs );
21869       return *this;
21870     }
21871 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresource21872     ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
21873     {
21874       aspectMask = aspectMask_;
21875       return *this;
21876     }
21877 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresource21878     ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
21879     {
21880       mipLevel = mipLevel_;
21881       return *this;
21882     }
21883 
setArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresource21884     ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT
21885     {
21886       arrayLayer = arrayLayer_;
21887       return *this;
21888     }
21889 
21890 
operator VkImageSubresource const&VULKAN_HPP_NAMESPACE::ImageSubresource21891     operator VkImageSubresource const&() const VULKAN_HPP_NOEXCEPT
21892     {
21893       return *reinterpret_cast<const VkImageSubresource*>( this );
21894     }
21895 
operator VkImageSubresource&VULKAN_HPP_NAMESPACE::ImageSubresource21896     operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
21897     {
21898       return *reinterpret_cast<VkImageSubresource*>( this );
21899     }
21900 
21901 
21902 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21903     auto operator<=>( ImageSubresource const& ) const = default;
21904 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresource21905     bool operator==( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
21906     {
21907       return ( aspectMask == rhs.aspectMask )
21908           && ( mipLevel == rhs.mipLevel )
21909           && ( arrayLayer == rhs.arrayLayer );
21910     }
21911 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresource21912     bool operator!=( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
21913     {
21914       return !operator==( rhs );
21915     }
21916 #endif
21917 
21918 
21919 
21920   public:
21921     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
21922     uint32_t mipLevel = {};
21923     uint32_t arrayLayer = {};
21924 
21925   };
21926   static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" );
21927   static_assert( std::is_standard_layout<ImageSubresource>::value, "struct wrapper is not a standard layout!" );
21928 
21929   struct Offset3D
21930   {
21931 
21932 
21933 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21934     VULKAN_HPP_CONSTEXPR Offset3D(int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {}) VULKAN_HPP_NOEXCEPT
21935     : x( x_ ), y( y_ ), z( z_ )
21936     {}
21937 
21938     VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21939 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21940     Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
21941       : Offset3D( *reinterpret_cast<Offset3D const *>( &rhs ) )
21942     {}
21943 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21944     explicit Offset3D( Offset2D const& offset2D, int32_t z_ = {} )
21945       : x( offset2D.x )
21946       , y( offset2D.y )
21947       , z( z_ )
21948     {}
21949 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21950 
21951     VULKAN_HPP_CONSTEXPR_14 Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21952 
operator =VULKAN_HPP_NAMESPACE::Offset3D21953     Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
21954     {
21955       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset3D const *>( &rhs );
21956       return *this;
21957     }
21958 
setXVULKAN_HPP_NAMESPACE::Offset3D21959     Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
21960     {
21961       x = x_;
21962       return *this;
21963     }
21964 
setYVULKAN_HPP_NAMESPACE::Offset3D21965     Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
21966     {
21967       y = y_;
21968       return *this;
21969     }
21970 
setZVULKAN_HPP_NAMESPACE::Offset3D21971     Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT
21972     {
21973       z = z_;
21974       return *this;
21975     }
21976 
21977 
operator VkOffset3D const&VULKAN_HPP_NAMESPACE::Offset3D21978     operator VkOffset3D const&() const VULKAN_HPP_NOEXCEPT
21979     {
21980       return *reinterpret_cast<const VkOffset3D*>( this );
21981     }
21982 
operator VkOffset3D&VULKAN_HPP_NAMESPACE::Offset3D21983     operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
21984     {
21985       return *reinterpret_cast<VkOffset3D*>( this );
21986     }
21987 
21988 
21989 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21990     auto operator<=>( Offset3D const& ) const = default;
21991 #else
operator ==VULKAN_HPP_NAMESPACE::Offset3D21992     bool operator==( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21993     {
21994       return ( x == rhs.x )
21995           && ( y == rhs.y )
21996           && ( z == rhs.z );
21997     }
21998 
operator !=VULKAN_HPP_NAMESPACE::Offset3D21999     bool operator!=( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
22000     {
22001       return !operator==( rhs );
22002     }
22003 #endif
22004 
22005 
22006 
22007   public:
22008     int32_t x = {};
22009     int32_t y = {};
22010     int32_t z = {};
22011 
22012   };
22013   static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" );
22014   static_assert( std::is_standard_layout<Offset3D>::value, "struct wrapper is not a standard layout!" );
22015 
22016   struct Extent3D
22017   {
22018 
22019 
22020 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent3DVULKAN_HPP_NAMESPACE::Extent3D22021     VULKAN_HPP_CONSTEXPR Extent3D(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
22022     : width( width_ ), height( height_ ), depth( depth_ )
22023     {}
22024 
22025     VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22026 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D22027     Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
22028       : Extent3D( *reinterpret_cast<Extent3D const *>( &rhs ) )
22029     {}
22030 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D22031     explicit Extent3D( Extent2D const& extent2D, uint32_t depth_ = {} )
22032       : width( extent2D.width )
22033       , height( extent2D.height )
22034       , depth( depth_ )
22035     {}
22036 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22037 
22038     VULKAN_HPP_CONSTEXPR_14 Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22039 
operator =VULKAN_HPP_NAMESPACE::Extent3D22040     Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
22041     {
22042       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent3D const *>( &rhs );
22043       return *this;
22044     }
22045 
setWidthVULKAN_HPP_NAMESPACE::Extent3D22046     Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
22047     {
22048       width = width_;
22049       return *this;
22050     }
22051 
setHeightVULKAN_HPP_NAMESPACE::Extent3D22052     Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
22053     {
22054       height = height_;
22055       return *this;
22056     }
22057 
setDepthVULKAN_HPP_NAMESPACE::Extent3D22058     Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
22059     {
22060       depth = depth_;
22061       return *this;
22062     }
22063 
22064 
operator VkExtent3D const&VULKAN_HPP_NAMESPACE::Extent3D22065     operator VkExtent3D const&() const VULKAN_HPP_NOEXCEPT
22066     {
22067       return *reinterpret_cast<const VkExtent3D*>( this );
22068     }
22069 
operator VkExtent3D&VULKAN_HPP_NAMESPACE::Extent3D22070     operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
22071     {
22072       return *reinterpret_cast<VkExtent3D*>( this );
22073     }
22074 
22075 
22076 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22077     auto operator<=>( Extent3D const& ) const = default;
22078 #else
operator ==VULKAN_HPP_NAMESPACE::Extent3D22079     bool operator==( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
22080     {
22081       return ( width == rhs.width )
22082           && ( height == rhs.height )
22083           && ( depth == rhs.depth );
22084     }
22085 
operator !=VULKAN_HPP_NAMESPACE::Extent3D22086     bool operator!=( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
22087     {
22088       return !operator==( rhs );
22089     }
22090 #endif
22091 
22092 
22093 
22094   public:
22095     uint32_t width = {};
22096     uint32_t height = {};
22097     uint32_t depth = {};
22098 
22099   };
22100   static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" );
22101   static_assert( std::is_standard_layout<Extent3D>::value, "struct wrapper is not a standard layout!" );
22102 
22103   struct SparseImageMemoryBind
22104   {
22105 
22106 
22107 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind22108     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
22109     : subresource( subresource_ ), offset( offset_ ), extent( extent_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
22110     {}
22111 
22112     VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22113 
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind22114     SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
22115       : SparseImageMemoryBind( *reinterpret_cast<SparseImageMemoryBind const *>( &rhs ) )
22116     {}
22117 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22118 
22119     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22120 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind22121     SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
22122     {
22123       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const *>( &rhs );
22124       return *this;
22125     }
22126 
setSubresourceVULKAN_HPP_NAMESPACE::SparseImageMemoryBind22127     SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
22128     {
22129       subresource = subresource_;
22130       return *this;
22131     }
22132 
setOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind22133     SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT
22134     {
22135       offset = offset_;
22136       return *this;
22137     }
22138 
setExtentVULKAN_HPP_NAMESPACE::SparseImageMemoryBind22139     SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
22140     {
22141       extent = extent_;
22142       return *this;
22143     }
22144 
setMemoryVULKAN_HPP_NAMESPACE::SparseImageMemoryBind22145     SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
22146     {
22147       memory = memory_;
22148       return *this;
22149     }
22150 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind22151     SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
22152     {
22153       memoryOffset = memoryOffset_;
22154       return *this;
22155     }
22156 
setFlagsVULKAN_HPP_NAMESPACE::SparseImageMemoryBind22157     SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
22158     {
22159       flags = flags_;
22160       return *this;
22161     }
22162 
22163 
operator VkSparseImageMemoryBind const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind22164     operator VkSparseImageMemoryBind const&() const VULKAN_HPP_NOEXCEPT
22165     {
22166       return *reinterpret_cast<const VkSparseImageMemoryBind*>( this );
22167     }
22168 
operator VkSparseImageMemoryBind&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind22169     operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
22170     {
22171       return *reinterpret_cast<VkSparseImageMemoryBind*>( this );
22172     }
22173 
22174 
22175 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22176     auto operator<=>( SparseImageMemoryBind const& ) const = default;
22177 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBind22178     bool operator==( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
22179     {
22180       return ( subresource == rhs.subresource )
22181           && ( offset == rhs.offset )
22182           && ( extent == rhs.extent )
22183           && ( memory == rhs.memory )
22184           && ( memoryOffset == rhs.memoryOffset )
22185           && ( flags == rhs.flags );
22186     }
22187 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBind22188     bool operator!=( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
22189     {
22190       return !operator==( rhs );
22191     }
22192 #endif
22193 
22194 
22195 
22196   public:
22197     VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {};
22198     VULKAN_HPP_NAMESPACE::Offset3D offset = {};
22199     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
22200     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
22201     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
22202     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
22203 
22204   };
22205   static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" );
22206   static_assert( std::is_standard_layout<SparseImageMemoryBind>::value, "struct wrapper is not a standard layout!" );
22207 
22208   struct SparseImageMemoryBindInfo
22209   {
22210 
22211 
22212 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22213     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
22214     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
22215     {}
22216 
22217     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22218 
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22219     SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22220       : SparseImageMemoryBindInfo( *reinterpret_cast<SparseImageMemoryBindInfo const *>( &rhs ) )
22221     {}
22222 
22223 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22224     SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ )
22225     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
22226     {}
22227 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22228 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22229 
22230     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22231 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22232     SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22233     {
22234       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const *>( &rhs );
22235       return *this;
22236     }
22237 
setImageVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22238     SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
22239     {
22240       image = image_;
22241       return *this;
22242     }
22243 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22244     SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
22245     {
22246       bindCount = bindCount_;
22247       return *this;
22248     }
22249 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22250     SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
22251     {
22252       pBinds = pBinds_;
22253       return *this;
22254     }
22255 
22256 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22257     SparseImageMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
22258     {
22259       bindCount = static_cast<uint32_t>( binds_.size() );
22260       pBinds = binds_.data();
22261       return *this;
22262     }
22263 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22264 
22265 
operator VkSparseImageMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22266     operator VkSparseImageMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
22267     {
22268       return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>( this );
22269     }
22270 
operator VkSparseImageMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22271     operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
22272     {
22273       return *reinterpret_cast<VkSparseImageMemoryBindInfo*>( this );
22274     }
22275 
22276 
22277 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22278     auto operator<=>( SparseImageMemoryBindInfo const& ) const = default;
22279 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22280     bool operator==( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22281     {
22282       return ( image == rhs.image )
22283           && ( bindCount == rhs.bindCount )
22284           && ( pBinds == rhs.pBinds );
22285     }
22286 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo22287     bool operator!=( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22288     {
22289       return !operator==( rhs );
22290     }
22291 #endif
22292 
22293 
22294 
22295   public:
22296     VULKAN_HPP_NAMESPACE::Image image = {};
22297     uint32_t bindCount = {};
22298     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds = {};
22299 
22300   };
22301   static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" );
22302   static_assert( std::is_standard_layout<SparseImageMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
22303 
22304   struct BindSparseInfo
22305   {
22306     static const bool allowDuplicate = false;
22307     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo;
22308 
22309 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo22310     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
22311     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), bufferBindCount( bufferBindCount_ ), pBufferBinds( pBufferBinds_ ), imageOpaqueBindCount( imageOpaqueBindCount_ ), pImageOpaqueBinds( pImageOpaqueBinds_ ), imageBindCount( imageBindCount_ ), pImageBinds( pImageBinds_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
22312     {}
22313 
22314     VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22315 
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo22316     BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22317       : BindSparseInfo( *reinterpret_cast<BindSparseInfo const *>( &rhs ) )
22318     {}
22319 
22320 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo22321     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_ = {} )
22322     : 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() )
22323     {}
22324 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22325 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22326 
22327     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22328 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo22329     BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22330     {
22331       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindSparseInfo const *>( &rhs );
22332       return *this;
22333     }
22334 
setPNextVULKAN_HPP_NAMESPACE::BindSparseInfo22335     BindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22336     {
22337       pNext = pNext_;
22338       return *this;
22339     }
22340 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo22341     BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
22342     {
22343       waitSemaphoreCount = waitSemaphoreCount_;
22344       return *this;
22345     }
22346 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo22347     BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
22348     {
22349       pWaitSemaphores = pWaitSemaphores_;
22350       return *this;
22351     }
22352 
22353 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo22354     BindSparseInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
22355     {
22356       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
22357       pWaitSemaphores = waitSemaphores_.data();
22358       return *this;
22359     }
22360 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22361 
setBufferBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo22362     BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
22363     {
22364       bufferBindCount = bufferBindCount_;
22365       return *this;
22366     }
22367 
setPBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo22368     BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ ) VULKAN_HPP_NOEXCEPT
22369     {
22370       pBufferBinds = pBufferBinds_;
22371       return *this;
22372     }
22373 
22374 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo22375     BindSparseInfo & setBufferBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT
22376     {
22377       bufferBindCount = static_cast<uint32_t>( bufferBinds_.size() );
22378       pBufferBinds = bufferBinds_.data();
22379       return *this;
22380     }
22381 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22382 
setImageOpaqueBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo22383     BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
22384     {
22385       imageOpaqueBindCount = imageOpaqueBindCount_;
22386       return *this;
22387     }
22388 
setPImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo22389     BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
22390     {
22391       pImageOpaqueBinds = pImageOpaqueBinds_;
22392       return *this;
22393     }
22394 
22395 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo22396     BindSparseInfo & setImageOpaqueBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
22397     {
22398       imageOpaqueBindCount = static_cast<uint32_t>( imageOpaqueBinds_.size() );
22399       pImageOpaqueBinds = imageOpaqueBinds_.data();
22400       return *this;
22401     }
22402 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22403 
setImageBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo22404     BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
22405     {
22406       imageBindCount = imageBindCount_;
22407       return *this;
22408     }
22409 
setPImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo22410     BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ ) VULKAN_HPP_NOEXCEPT
22411     {
22412       pImageBinds = pImageBinds_;
22413       return *this;
22414     }
22415 
22416 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo22417     BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ ) VULKAN_HPP_NOEXCEPT
22418     {
22419       imageBindCount = static_cast<uint32_t>( imageBinds_.size() );
22420       pImageBinds = imageBinds_.data();
22421       return *this;
22422     }
22423 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22424 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo22425     BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
22426     {
22427       signalSemaphoreCount = signalSemaphoreCount_;
22428       return *this;
22429     }
22430 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo22431     BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
22432     {
22433       pSignalSemaphores = pSignalSemaphores_;
22434       return *this;
22435     }
22436 
22437 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo22438     BindSparseInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
22439     {
22440       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
22441       pSignalSemaphores = signalSemaphores_.data();
22442       return *this;
22443     }
22444 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22445 
22446 
operator VkBindSparseInfo const&VULKAN_HPP_NAMESPACE::BindSparseInfo22447     operator VkBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
22448     {
22449       return *reinterpret_cast<const VkBindSparseInfo*>( this );
22450     }
22451 
operator VkBindSparseInfo&VULKAN_HPP_NAMESPACE::BindSparseInfo22452     operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
22453     {
22454       return *reinterpret_cast<VkBindSparseInfo*>( this );
22455     }
22456 
22457 
22458 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22459     auto operator<=>( BindSparseInfo const& ) const = default;
22460 #else
operator ==VULKAN_HPP_NAMESPACE::BindSparseInfo22461     bool operator==( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22462     {
22463       return ( sType == rhs.sType )
22464           && ( pNext == rhs.pNext )
22465           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
22466           && ( pWaitSemaphores == rhs.pWaitSemaphores )
22467           && ( bufferBindCount == rhs.bufferBindCount )
22468           && ( pBufferBinds == rhs.pBufferBinds )
22469           && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount )
22470           && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds )
22471           && ( imageBindCount == rhs.imageBindCount )
22472           && ( pImageBinds == rhs.pImageBinds )
22473           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
22474           && ( pSignalSemaphores == rhs.pSignalSemaphores );
22475     }
22476 
operator !=VULKAN_HPP_NAMESPACE::BindSparseInfo22477     bool operator!=( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22478     {
22479       return !operator==( rhs );
22480     }
22481 #endif
22482 
22483 
22484 
22485   public:
22486     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo;
22487     const void* pNext = {};
22488     uint32_t waitSemaphoreCount = {};
22489     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
22490     uint32_t bufferBindCount = {};
22491     const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds = {};
22492     uint32_t imageOpaqueBindCount = {};
22493     const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds = {};
22494     uint32_t imageBindCount = {};
22495     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds = {};
22496     uint32_t signalSemaphoreCount = {};
22497     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
22498 
22499   };
22500   static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" );
22501   static_assert( std::is_standard_layout<BindSparseInfo>::value, "struct wrapper is not a standard layout!" );
22502 
22503   template <>
22504   struct CppType<StructureType, StructureType::eBindSparseInfo>
22505   {
22506     using Type = BindSparseInfo;
22507   };
22508 
22509   struct BindVertexBufferIndirectCommandNV
22510   {
22511 
22512 
22513 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22514     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, uint32_t stride_ = {}) VULKAN_HPP_NOEXCEPT
22515     : bufferAddress( bufferAddress_ ), size( size_ ), stride( stride_ )
22516     {}
22517 
22518     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22519 
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22520     BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
22521       : BindVertexBufferIndirectCommandNV( *reinterpret_cast<BindVertexBufferIndirectCommandNV const *>( &rhs ) )
22522     {}
22523 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22524 
22525     VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22526 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22527     BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
22528     {
22529       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const *>( &rhs );
22530       return *this;
22531     }
22532 
setBufferAddressVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22533     BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
22534     {
22535       bufferAddress = bufferAddress_;
22536       return *this;
22537     }
22538 
setSizeVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22539     BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
22540     {
22541       size = size_;
22542       return *this;
22543     }
22544 
setStrideVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22545     BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
22546     {
22547       stride = stride_;
22548       return *this;
22549     }
22550 
22551 
operator VkBindVertexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22552     operator VkBindVertexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
22553     {
22554       return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV*>( this );
22555     }
22556 
operator VkBindVertexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22557     operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
22558     {
22559       return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV*>( this );
22560     }
22561 
22562 
22563 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22564     auto operator<=>( BindVertexBufferIndirectCommandNV const& ) const = default;
22565 #else
operator ==VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22566     bool operator==( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22567     {
22568       return ( bufferAddress == rhs.bufferAddress )
22569           && ( size == rhs.size )
22570           && ( stride == rhs.stride );
22571     }
22572 
operator !=VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV22573     bool operator!=( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
22574     {
22575       return !operator==( rhs );
22576     }
22577 #endif
22578 
22579 
22580 
22581   public:
22582     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
22583     uint32_t size = {};
22584     uint32_t stride = {};
22585 
22586   };
22587   static_assert( sizeof( BindVertexBufferIndirectCommandNV ) == sizeof( VkBindVertexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
22588   static_assert( std::is_standard_layout<BindVertexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
22589 
22590   struct ImageSubresourceLayers
22591   {
22592 
22593 
22594 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22595     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
22596     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
22597     {}
22598 
22599     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22600 
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22601     ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
22602       : ImageSubresourceLayers( *reinterpret_cast<ImageSubresourceLayers const *>( &rhs ) )
22603     {}
22604 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22605 
22606     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22607 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22608     ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
22609     {
22610       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const *>( &rhs );
22611       return *this;
22612     }
22613 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22614     ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
22615     {
22616       aspectMask = aspectMask_;
22617       return *this;
22618     }
22619 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22620     ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
22621     {
22622       mipLevel = mipLevel_;
22623       return *this;
22624     }
22625 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22626     ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
22627     {
22628       baseArrayLayer = baseArrayLayer_;
22629       return *this;
22630     }
22631 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22632     ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
22633     {
22634       layerCount = layerCount_;
22635       return *this;
22636     }
22637 
22638 
operator VkImageSubresourceLayers const&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22639     operator VkImageSubresourceLayers const&() const VULKAN_HPP_NOEXCEPT
22640     {
22641       return *reinterpret_cast<const VkImageSubresourceLayers*>( this );
22642     }
22643 
operator VkImageSubresourceLayers&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22644     operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
22645     {
22646       return *reinterpret_cast<VkImageSubresourceLayers*>( this );
22647     }
22648 
22649 
22650 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22651     auto operator<=>( ImageSubresourceLayers const& ) const = default;
22652 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22653     bool operator==( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
22654     {
22655       return ( aspectMask == rhs.aspectMask )
22656           && ( mipLevel == rhs.mipLevel )
22657           && ( baseArrayLayer == rhs.baseArrayLayer )
22658           && ( layerCount == rhs.layerCount );
22659     }
22660 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22661     bool operator!=( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
22662     {
22663       return !operator==( rhs );
22664     }
22665 #endif
22666 
22667 
22668 
22669   public:
22670     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
22671     uint32_t mipLevel = {};
22672     uint32_t baseArrayLayer = {};
22673     uint32_t layerCount = {};
22674 
22675   };
22676   static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" );
22677   static_assert( std::is_standard_layout<ImageSubresourceLayers>::value, "struct wrapper is not a standard layout!" );
22678 
22679   struct ImageBlit2KHR
22680   {
22681     static const bool allowDuplicate = false;
22682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2KHR;
22683 
22684 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlit2KHRVULKAN_HPP_NAMESPACE::ImageBlit2KHR22685     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
22686     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
22687     {}
22688 
22689     VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22690 
ImageBlit2KHRVULKAN_HPP_NAMESPACE::ImageBlit2KHR22691     ImageBlit2KHR( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22692       : ImageBlit2KHR( *reinterpret_cast<ImageBlit2KHR const *>( &rhs ) )
22693     {}
22694 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22695 
22696     VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR & operator=( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22697 
operator =VULKAN_HPP_NAMESPACE::ImageBlit2KHR22698     ImageBlit2KHR & operator=( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22699     {
22700       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit2KHR const *>( &rhs );
22701       return *this;
22702     }
22703 
setPNextVULKAN_HPP_NAMESPACE::ImageBlit2KHR22704     ImageBlit2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22705     {
22706       pNext = pNext_;
22707       return *this;
22708     }
22709 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit2KHR22710     ImageBlit2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
22711     {
22712       srcSubresource = srcSubresource_;
22713       return *this;
22714     }
22715 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit2KHR22716     ImageBlit2KHR & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
22717     {
22718       srcOffsets = srcOffsets_;
22719       return *this;
22720     }
22721 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit2KHR22722     ImageBlit2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
22723     {
22724       dstSubresource = dstSubresource_;
22725       return *this;
22726     }
22727 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit2KHR22728     ImageBlit2KHR & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
22729     {
22730       dstOffsets = dstOffsets_;
22731       return *this;
22732     }
22733 
22734 
operator VkImageBlit2KHR const&VULKAN_HPP_NAMESPACE::ImageBlit2KHR22735     operator VkImageBlit2KHR const&() const VULKAN_HPP_NOEXCEPT
22736     {
22737       return *reinterpret_cast<const VkImageBlit2KHR*>( this );
22738     }
22739 
operator VkImageBlit2KHR&VULKAN_HPP_NAMESPACE::ImageBlit2KHR22740     operator VkImageBlit2KHR &() VULKAN_HPP_NOEXCEPT
22741     {
22742       return *reinterpret_cast<VkImageBlit2KHR*>( this );
22743     }
22744 
22745 
22746 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22747     auto operator<=>( ImageBlit2KHR const& ) const = default;
22748 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit2KHR22749     bool operator==( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22750     {
22751       return ( sType == rhs.sType )
22752           && ( pNext == rhs.pNext )
22753           && ( srcSubresource == rhs.srcSubresource )
22754           && ( srcOffsets == rhs.srcOffsets )
22755           && ( dstSubresource == rhs.dstSubresource )
22756           && ( dstOffsets == rhs.dstOffsets );
22757     }
22758 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit2KHR22759     bool operator!=( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22760     {
22761       return !operator==( rhs );
22762     }
22763 #endif
22764 
22765 
22766 
22767   public:
22768     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2KHR;
22769     const void* pNext = {};
22770     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
22771     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
22772     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
22773     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
22774 
22775   };
22776   static_assert( sizeof( ImageBlit2KHR ) == sizeof( VkImageBlit2KHR ), "struct and wrapper have different size!" );
22777   static_assert( std::is_standard_layout<ImageBlit2KHR>::value, "struct wrapper is not a standard layout!" );
22778 
22779   template <>
22780   struct CppType<StructureType, StructureType::eImageBlit2KHR>
22781   {
22782     using Type = ImageBlit2KHR;
22783   };
22784 
22785   struct BlitImageInfo2KHR
22786   {
22787     static const bool allowDuplicate = false;
22788     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2KHR;
22789 
22790 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22791     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
22792     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ), filter( filter_ )
22793     {}
22794 
22795     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22796 
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22797     BlitImageInfo2KHR( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22798       : BlitImageInfo2KHR( *reinterpret_cast<BlitImageInfo2KHR const *>( &rhs ) )
22799     {}
22800 
22801 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22802     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 )
22803     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() ), filter( filter_ )
22804     {}
22805 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22806 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22807 
22808     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR & operator=( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22809 
operator =VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22810     BlitImageInfo2KHR & operator=( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22811     {
22812       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR const *>( &rhs );
22813       return *this;
22814     }
22815 
setPNextVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22816     BlitImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22817     {
22818       pNext = pNext_;
22819       return *this;
22820     }
22821 
setSrcImageVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22822     BlitImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
22823     {
22824       srcImage = srcImage_;
22825       return *this;
22826     }
22827 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22828     BlitImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
22829     {
22830       srcImageLayout = srcImageLayout_;
22831       return *this;
22832     }
22833 
setDstImageVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22834     BlitImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
22835     {
22836       dstImage = dstImage_;
22837       return *this;
22838     }
22839 
setDstImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22840     BlitImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
22841     {
22842       dstImageLayout = dstImageLayout_;
22843       return *this;
22844     }
22845 
setRegionCountVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22846     BlitImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
22847     {
22848       regionCount = regionCount_;
22849       return *this;
22850     }
22851 
setPRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22852     BlitImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
22853     {
22854       pRegions = pRegions_;
22855       return *this;
22856     }
22857 
22858 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22859     BlitImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
22860     {
22861       regionCount = static_cast<uint32_t>( regions_.size() );
22862       pRegions = regions_.data();
22863       return *this;
22864     }
22865 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22866 
setFilterVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22867     BlitImageInfo2KHR & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT
22868     {
22869       filter = filter_;
22870       return *this;
22871     }
22872 
22873 
operator VkBlitImageInfo2KHR const&VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22874     operator VkBlitImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
22875     {
22876       return *reinterpret_cast<const VkBlitImageInfo2KHR*>( this );
22877     }
22878 
operator VkBlitImageInfo2KHR&VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22879     operator VkBlitImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
22880     {
22881       return *reinterpret_cast<VkBlitImageInfo2KHR*>( this );
22882     }
22883 
22884 
22885 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22886     auto operator<=>( BlitImageInfo2KHR const& ) const = default;
22887 #else
operator ==VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22888     bool operator==( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22889     {
22890       return ( sType == rhs.sType )
22891           && ( pNext == rhs.pNext )
22892           && ( srcImage == rhs.srcImage )
22893           && ( srcImageLayout == rhs.srcImageLayout )
22894           && ( dstImage == rhs.dstImage )
22895           && ( dstImageLayout == rhs.dstImageLayout )
22896           && ( regionCount == rhs.regionCount )
22897           && ( pRegions == rhs.pRegions )
22898           && ( filter == rhs.filter );
22899     }
22900 
operator !=VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22901     bool operator!=( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22902     {
22903       return !operator==( rhs );
22904     }
22905 #endif
22906 
22907 
22908 
22909   public:
22910     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2KHR;
22911     const void* pNext = {};
22912     VULKAN_HPP_NAMESPACE::Image srcImage = {};
22913     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
22914     VULKAN_HPP_NAMESPACE::Image dstImage = {};
22915     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
22916     uint32_t regionCount = {};
22917     const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions = {};
22918     VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
22919 
22920   };
22921   static_assert( sizeof( BlitImageInfo2KHR ) == sizeof( VkBlitImageInfo2KHR ), "struct and wrapper have different size!" );
22922   static_assert( std::is_standard_layout<BlitImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
22923 
22924   template <>
22925   struct CppType<StructureType, StructureType::eBlitImageInfo2KHR>
22926   {
22927     using Type = BlitImageInfo2KHR;
22928   };
22929 
22930   struct BufferCopy
22931   {
22932 
22933 
22934 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy22935     VULKAN_HPP_CONSTEXPR BufferCopy(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
22936     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
22937     {}
22938 
22939     VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22940 
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy22941     BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22942       : BufferCopy( *reinterpret_cast<BufferCopy const *>( &rhs ) )
22943     {}
22944 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22945 
22946     VULKAN_HPP_CONSTEXPR_14 BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22947 
operator =VULKAN_HPP_NAMESPACE::BufferCopy22948     BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22949     {
22950       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy const *>( &rhs );
22951       return *this;
22952     }
22953 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy22954     BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
22955     {
22956       srcOffset = srcOffset_;
22957       return *this;
22958     }
22959 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy22960     BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
22961     {
22962       dstOffset = dstOffset_;
22963       return *this;
22964     }
22965 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy22966     BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22967     {
22968       size = size_;
22969       return *this;
22970     }
22971 
22972 
operator VkBufferCopy const&VULKAN_HPP_NAMESPACE::BufferCopy22973     operator VkBufferCopy const&() const VULKAN_HPP_NOEXCEPT
22974     {
22975       return *reinterpret_cast<const VkBufferCopy*>( this );
22976     }
22977 
operator VkBufferCopy&VULKAN_HPP_NAMESPACE::BufferCopy22978     operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT
22979     {
22980       return *reinterpret_cast<VkBufferCopy*>( this );
22981     }
22982 
22983 
22984 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22985     auto operator<=>( BufferCopy const& ) const = default;
22986 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy22987     bool operator==( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22988     {
22989       return ( srcOffset == rhs.srcOffset )
22990           && ( dstOffset == rhs.dstOffset )
22991           && ( size == rhs.size );
22992     }
22993 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy22994     bool operator!=( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22995     {
22996       return !operator==( rhs );
22997     }
22998 #endif
22999 
23000 
23001 
23002   public:
23003     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
23004     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
23005     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
23006 
23007   };
23008   static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" );
23009   static_assert( std::is_standard_layout<BufferCopy>::value, "struct wrapper is not a standard layout!" );
23010 
23011   struct BufferCopy2KHR
23012   {
23013     static const bool allowDuplicate = false;
23014     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2KHR;
23015 
23016 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopy2KHRVULKAN_HPP_NAMESPACE::BufferCopy2KHR23017     VULKAN_HPP_CONSTEXPR BufferCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
23018     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
23019     {}
23020 
23021     VULKAN_HPP_CONSTEXPR BufferCopy2KHR( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23022 
BufferCopy2KHRVULKAN_HPP_NAMESPACE::BufferCopy2KHR23023     BufferCopy2KHR( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
23024       : BufferCopy2KHR( *reinterpret_cast<BufferCopy2KHR const *>( &rhs ) )
23025     {}
23026 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23027 
23028     VULKAN_HPP_CONSTEXPR_14 BufferCopy2KHR & operator=( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23029 
operator =VULKAN_HPP_NAMESPACE::BufferCopy2KHR23030     BufferCopy2KHR & operator=( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
23031     {
23032       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy2KHR const *>( &rhs );
23033       return *this;
23034     }
23035 
setPNextVULKAN_HPP_NAMESPACE::BufferCopy2KHR23036     BufferCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23037     {
23038       pNext = pNext_;
23039       return *this;
23040     }
23041 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy2KHR23042     BufferCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
23043     {
23044       srcOffset = srcOffset_;
23045       return *this;
23046     }
23047 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy2KHR23048     BufferCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
23049     {
23050       dstOffset = dstOffset_;
23051       return *this;
23052     }
23053 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy2KHR23054     BufferCopy2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
23055     {
23056       size = size_;
23057       return *this;
23058     }
23059 
23060 
operator VkBufferCopy2KHR const&VULKAN_HPP_NAMESPACE::BufferCopy2KHR23061     operator VkBufferCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
23062     {
23063       return *reinterpret_cast<const VkBufferCopy2KHR*>( this );
23064     }
23065 
operator VkBufferCopy2KHR&VULKAN_HPP_NAMESPACE::BufferCopy2KHR23066     operator VkBufferCopy2KHR &() VULKAN_HPP_NOEXCEPT
23067     {
23068       return *reinterpret_cast<VkBufferCopy2KHR*>( this );
23069     }
23070 
23071 
23072 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23073     auto operator<=>( BufferCopy2KHR const& ) const = default;
23074 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy2KHR23075     bool operator==( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23076     {
23077       return ( sType == rhs.sType )
23078           && ( pNext == rhs.pNext )
23079           && ( srcOffset == rhs.srcOffset )
23080           && ( dstOffset == rhs.dstOffset )
23081           && ( size == rhs.size );
23082     }
23083 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy2KHR23084     bool operator!=( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23085     {
23086       return !operator==( rhs );
23087     }
23088 #endif
23089 
23090 
23091 
23092   public:
23093     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2KHR;
23094     const void* pNext = {};
23095     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
23096     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
23097     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
23098 
23099   };
23100   static_assert( sizeof( BufferCopy2KHR ) == sizeof( VkBufferCopy2KHR ), "struct and wrapper have different size!" );
23101   static_assert( std::is_standard_layout<BufferCopy2KHR>::value, "struct wrapper is not a standard layout!" );
23102 
23103   template <>
23104   struct CppType<StructureType, StructureType::eBufferCopy2KHR>
23105   {
23106     using Type = BufferCopy2KHR;
23107   };
23108 
23109   struct BufferCreateInfo
23110   {
23111     static const bool allowDuplicate = false;
23112     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo;
23113 
23114 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo23115     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
23116     : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
23117     {}
23118 
23119     VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23120 
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo23121     BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23122       : BufferCreateInfo( *reinterpret_cast<BufferCreateInfo const *>( &rhs ) )
23123     {}
23124 
23125 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo23126     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_ )
23127     : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
23128     {}
23129 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
23130 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23131 
23132     VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23133 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo23134     BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23135     {
23136       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCreateInfo const *>( &rhs );
23137       return *this;
23138     }
23139 
setPNextVULKAN_HPP_NAMESPACE::BufferCreateInfo23140     BufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23141     {
23142       pNext = pNext_;
23143       return *this;
23144     }
23145 
setFlagsVULKAN_HPP_NAMESPACE::BufferCreateInfo23146     BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
23147     {
23148       flags = flags_;
23149       return *this;
23150     }
23151 
setSizeVULKAN_HPP_NAMESPACE::BufferCreateInfo23152     BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
23153     {
23154       size = size_;
23155       return *this;
23156     }
23157 
setUsageVULKAN_HPP_NAMESPACE::BufferCreateInfo23158     BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
23159     {
23160       usage = usage_;
23161       return *this;
23162     }
23163 
setSharingModeVULKAN_HPP_NAMESPACE::BufferCreateInfo23164     BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
23165     {
23166       sharingMode = sharingMode_;
23167       return *this;
23168     }
23169 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::BufferCreateInfo23170     BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
23171     {
23172       queueFamilyIndexCount = queueFamilyIndexCount_;
23173       return *this;
23174     }
23175 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo23176     BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
23177     {
23178       pQueueFamilyIndices = pQueueFamilyIndices_;
23179       return *this;
23180     }
23181 
23182 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo23183     BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
23184     {
23185       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
23186       pQueueFamilyIndices = queueFamilyIndices_.data();
23187       return *this;
23188     }
23189 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
23190 
23191 
operator VkBufferCreateInfo const&VULKAN_HPP_NAMESPACE::BufferCreateInfo23192     operator VkBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
23193     {
23194       return *reinterpret_cast<const VkBufferCreateInfo*>( this );
23195     }
23196 
operator VkBufferCreateInfo&VULKAN_HPP_NAMESPACE::BufferCreateInfo23197     operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
23198     {
23199       return *reinterpret_cast<VkBufferCreateInfo*>( this );
23200     }
23201 
23202 
23203 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23204     auto operator<=>( BufferCreateInfo const& ) const = default;
23205 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCreateInfo23206     bool operator==( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23207     {
23208       return ( sType == rhs.sType )
23209           && ( pNext == rhs.pNext )
23210           && ( flags == rhs.flags )
23211           && ( size == rhs.size )
23212           && ( usage == rhs.usage )
23213           && ( sharingMode == rhs.sharingMode )
23214           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
23215           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
23216     }
23217 
operator !=VULKAN_HPP_NAMESPACE::BufferCreateInfo23218     bool operator!=( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23219     {
23220       return !operator==( rhs );
23221     }
23222 #endif
23223 
23224 
23225 
23226   public:
23227     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo;
23228     const void* pNext = {};
23229     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
23230     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
23231     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
23232     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
23233     uint32_t queueFamilyIndexCount = {};
23234     const uint32_t* pQueueFamilyIndices = {};
23235 
23236   };
23237   static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" );
23238   static_assert( std::is_standard_layout<BufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
23239 
23240   template <>
23241   struct CppType<StructureType, StructureType::eBufferCreateInfo>
23242   {
23243     using Type = BufferCreateInfo;
23244   };
23245 
23246   struct BufferDeviceAddressCreateInfoEXT
23247   {
23248     static const bool allowDuplicate = false;
23249     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT;
23250 
23251 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23252     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT
23253     : deviceAddress( deviceAddress_ )
23254     {}
23255 
23256     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23257 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23258     BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23259       : BufferDeviceAddressCreateInfoEXT( *reinterpret_cast<BufferDeviceAddressCreateInfoEXT const *>( &rhs ) )
23260     {}
23261 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23262 
23263     VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23264 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23265     BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23266     {
23267       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const *>( &rhs );
23268       return *this;
23269     }
23270 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23271     BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23272     {
23273       pNext = pNext_;
23274       return *this;
23275     }
23276 
setDeviceAddressVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23277     BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
23278     {
23279       deviceAddress = deviceAddress_;
23280       return *this;
23281     }
23282 
23283 
operator VkBufferDeviceAddressCreateInfoEXT const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23284     operator VkBufferDeviceAddressCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
23285     {
23286       return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>( this );
23287     }
23288 
operator VkBufferDeviceAddressCreateInfoEXT&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23289     operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
23290     {
23291       return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>( this );
23292     }
23293 
23294 
23295 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23296     auto operator<=>( BufferDeviceAddressCreateInfoEXT const& ) const = default;
23297 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23298     bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
23299     {
23300       return ( sType == rhs.sType )
23301           && ( pNext == rhs.pNext )
23302           && ( deviceAddress == rhs.deviceAddress );
23303     }
23304 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT23305     bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
23306     {
23307       return !operator==( rhs );
23308     }
23309 #endif
23310 
23311 
23312 
23313   public:
23314     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
23315     const void* pNext = {};
23316     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
23317 
23318   };
23319   static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" );
23320   static_assert( std::is_standard_layout<BufferDeviceAddressCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
23321 
23322   template <>
23323   struct CppType<StructureType, StructureType::eBufferDeviceAddressCreateInfoEXT>
23324   {
23325     using Type = BufferDeviceAddressCreateInfoEXT;
23326   };
23327 
23328   struct BufferDeviceAddressInfo
23329   {
23330     static const bool allowDuplicate = false;
23331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo;
23332 
23333 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23334     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
23335     : buffer( buffer_ )
23336     {}
23337 
23338     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23339 
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23340     BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23341       : BufferDeviceAddressInfo( *reinterpret_cast<BufferDeviceAddressInfo const *>( &rhs ) )
23342     {}
23343 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23344 
23345     VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23346 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23347     BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23348     {
23349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const *>( &rhs );
23350       return *this;
23351     }
23352 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23353     BufferDeviceAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23354     {
23355       pNext = pNext_;
23356       return *this;
23357     }
23358 
setBufferVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23359     BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
23360     {
23361       buffer = buffer_;
23362       return *this;
23363     }
23364 
23365 
operator VkBufferDeviceAddressInfo const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23366     operator VkBufferDeviceAddressInfo const&() const VULKAN_HPP_NOEXCEPT
23367     {
23368       return *reinterpret_cast<const VkBufferDeviceAddressInfo*>( this );
23369     }
23370 
operator VkBufferDeviceAddressInfo&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23371     operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
23372     {
23373       return *reinterpret_cast<VkBufferDeviceAddressInfo*>( this );
23374     }
23375 
23376 
23377 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23378     auto operator<=>( BufferDeviceAddressInfo const& ) const = default;
23379 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23380     bool operator==( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23381     {
23382       return ( sType == rhs.sType )
23383           && ( pNext == rhs.pNext )
23384           && ( buffer == rhs.buffer );
23385     }
23386 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo23387     bool operator!=( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23388     {
23389       return !operator==( rhs );
23390     }
23391 #endif
23392 
23393 
23394 
23395   public:
23396     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo;
23397     const void* pNext = {};
23398     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
23399 
23400   };
23401   static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), "struct and wrapper have different size!" );
23402   static_assert( std::is_standard_layout<BufferDeviceAddressInfo>::value, "struct wrapper is not a standard layout!" );
23403 
23404   template <>
23405   struct CppType<StructureType, StructureType::eBufferDeviceAddressInfo>
23406   {
23407     using Type = BufferDeviceAddressInfo;
23408   };
23409   using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
23410   using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
23411 
23412   struct BufferImageCopy
23413   {
23414 
23415 
23416 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy23417     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
23418     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
23419     {}
23420 
23421     VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23422 
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy23423     BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
23424       : BufferImageCopy( *reinterpret_cast<BufferImageCopy const *>( &rhs ) )
23425     {}
23426 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23427 
23428     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23429 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy23430     BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
23431     {
23432       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy const *>( &rhs );
23433       return *this;
23434     }
23435 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy23436     BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
23437     {
23438       bufferOffset = bufferOffset_;
23439       return *this;
23440     }
23441 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy23442     BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
23443     {
23444       bufferRowLength = bufferRowLength_;
23445       return *this;
23446     }
23447 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy23448     BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
23449     {
23450       bufferImageHeight = bufferImageHeight_;
23451       return *this;
23452     }
23453 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy23454     BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
23455     {
23456       imageSubresource = imageSubresource_;
23457       return *this;
23458     }
23459 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy23460     BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
23461     {
23462       imageOffset = imageOffset_;
23463       return *this;
23464     }
23465 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy23466     BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
23467     {
23468       imageExtent = imageExtent_;
23469       return *this;
23470     }
23471 
23472 
operator VkBufferImageCopy const&VULKAN_HPP_NAMESPACE::BufferImageCopy23473     operator VkBufferImageCopy const&() const VULKAN_HPP_NOEXCEPT
23474     {
23475       return *reinterpret_cast<const VkBufferImageCopy*>( this );
23476     }
23477 
operator VkBufferImageCopy&VULKAN_HPP_NAMESPACE::BufferImageCopy23478     operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
23479     {
23480       return *reinterpret_cast<VkBufferImageCopy*>( this );
23481     }
23482 
23483 
23484 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23485     auto operator<=>( BufferImageCopy const& ) const = default;
23486 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy23487     bool operator==( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
23488     {
23489       return ( bufferOffset == rhs.bufferOffset )
23490           && ( bufferRowLength == rhs.bufferRowLength )
23491           && ( bufferImageHeight == rhs.bufferImageHeight )
23492           && ( imageSubresource == rhs.imageSubresource )
23493           && ( imageOffset == rhs.imageOffset )
23494           && ( imageExtent == rhs.imageExtent );
23495     }
23496 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy23497     bool operator!=( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
23498     {
23499       return !operator==( rhs );
23500     }
23501 #endif
23502 
23503 
23504 
23505   public:
23506     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
23507     uint32_t bufferRowLength = {};
23508     uint32_t bufferImageHeight = {};
23509     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
23510     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
23511     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
23512 
23513   };
23514   static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" );
23515   static_assert( std::is_standard_layout<BufferImageCopy>::value, "struct wrapper is not a standard layout!" );
23516 
23517   struct BufferImageCopy2KHR
23518   {
23519     static const bool allowDuplicate = false;
23520     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2KHR;
23521 
23522 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopy2KHRVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23523     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
23524     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
23525     {}
23526 
23527     VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23528 
BufferImageCopy2KHRVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23529     BufferImageCopy2KHR( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
23530       : BufferImageCopy2KHR( *reinterpret_cast<BufferImageCopy2KHR const *>( &rhs ) )
23531     {}
23532 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23533 
23534     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2KHR & operator=( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23535 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23536     BufferImageCopy2KHR & operator=( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
23537     {
23538       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR const *>( &rhs );
23539       return *this;
23540     }
23541 
setPNextVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23542     BufferImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23543     {
23544       pNext = pNext_;
23545       return *this;
23546     }
23547 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23548     BufferImageCopy2KHR & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
23549     {
23550       bufferOffset = bufferOffset_;
23551       return *this;
23552     }
23553 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23554     BufferImageCopy2KHR & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
23555     {
23556       bufferRowLength = bufferRowLength_;
23557       return *this;
23558     }
23559 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23560     BufferImageCopy2KHR & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
23561     {
23562       bufferImageHeight = bufferImageHeight_;
23563       return *this;
23564     }
23565 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23566     BufferImageCopy2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
23567     {
23568       imageSubresource = imageSubresource_;
23569       return *this;
23570     }
23571 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23572     BufferImageCopy2KHR & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
23573     {
23574       imageOffset = imageOffset_;
23575       return *this;
23576     }
23577 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23578     BufferImageCopy2KHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
23579     {
23580       imageExtent = imageExtent_;
23581       return *this;
23582     }
23583 
23584 
operator VkBufferImageCopy2KHR const&VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23585     operator VkBufferImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
23586     {
23587       return *reinterpret_cast<const VkBufferImageCopy2KHR*>( this );
23588     }
23589 
operator VkBufferImageCopy2KHR&VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23590     operator VkBufferImageCopy2KHR &() VULKAN_HPP_NOEXCEPT
23591     {
23592       return *reinterpret_cast<VkBufferImageCopy2KHR*>( this );
23593     }
23594 
23595 
23596 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23597     auto operator<=>( BufferImageCopy2KHR const& ) const = default;
23598 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23599     bool operator==( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23600     {
23601       return ( sType == rhs.sType )
23602           && ( pNext == rhs.pNext )
23603           && ( bufferOffset == rhs.bufferOffset )
23604           && ( bufferRowLength == rhs.bufferRowLength )
23605           && ( bufferImageHeight == rhs.bufferImageHeight )
23606           && ( imageSubresource == rhs.imageSubresource )
23607           && ( imageOffset == rhs.imageOffset )
23608           && ( imageExtent == rhs.imageExtent );
23609     }
23610 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR23611     bool operator!=( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23612     {
23613       return !operator==( rhs );
23614     }
23615 #endif
23616 
23617 
23618 
23619   public:
23620     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2KHR;
23621     const void* pNext = {};
23622     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
23623     uint32_t bufferRowLength = {};
23624     uint32_t bufferImageHeight = {};
23625     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
23626     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
23627     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
23628 
23629   };
23630   static_assert( sizeof( BufferImageCopy2KHR ) == sizeof( VkBufferImageCopy2KHR ), "struct and wrapper have different size!" );
23631   static_assert( std::is_standard_layout<BufferImageCopy2KHR>::value, "struct wrapper is not a standard layout!" );
23632 
23633   template <>
23634   struct CppType<StructureType, StructureType::eBufferImageCopy2KHR>
23635   {
23636     using Type = BufferImageCopy2KHR;
23637   };
23638 
23639   struct BufferMemoryBarrier
23640   {
23641     static const bool allowDuplicate = false;
23642     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier;
23643 
23644 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23645     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
23646     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ )
23647     {}
23648 
23649     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23650 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23651     BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
23652       : BufferMemoryBarrier( *reinterpret_cast<BufferMemoryBarrier const *>( &rhs ) )
23653     {}
23654 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23655 
23656     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23657 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier23658     BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
23659     {
23660       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const *>( &rhs );
23661       return *this;
23662     }
23663 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23664     BufferMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23665     {
23666       pNext = pNext_;
23667       return *this;
23668     }
23669 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23670     BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
23671     {
23672       srcAccessMask = srcAccessMask_;
23673       return *this;
23674     }
23675 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23676     BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
23677     {
23678       dstAccessMask = dstAccessMask_;
23679       return *this;
23680     }
23681 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23682     BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
23683     {
23684       srcQueueFamilyIndex = srcQueueFamilyIndex_;
23685       return *this;
23686     }
23687 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23688     BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
23689     {
23690       dstQueueFamilyIndex = dstQueueFamilyIndex_;
23691       return *this;
23692     }
23693 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23694     BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
23695     {
23696       buffer = buffer_;
23697       return *this;
23698     }
23699 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23700     BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
23701     {
23702       offset = offset_;
23703       return *this;
23704     }
23705 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier23706     BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
23707     {
23708       size = size_;
23709       return *this;
23710     }
23711 
23712 
operator VkBufferMemoryBarrier const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier23713     operator VkBufferMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
23714     {
23715       return *reinterpret_cast<const VkBufferMemoryBarrier*>( this );
23716     }
23717 
operator VkBufferMemoryBarrier&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier23718     operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
23719     {
23720       return *reinterpret_cast<VkBufferMemoryBarrier*>( this );
23721     }
23722 
23723 
23724 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23725     auto operator<=>( BufferMemoryBarrier const& ) const = default;
23726 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier23727     bool operator==( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
23728     {
23729       return ( sType == rhs.sType )
23730           && ( pNext == rhs.pNext )
23731           && ( srcAccessMask == rhs.srcAccessMask )
23732           && ( dstAccessMask == rhs.dstAccessMask )
23733           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
23734           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
23735           && ( buffer == rhs.buffer )
23736           && ( offset == rhs.offset )
23737           && ( size == rhs.size );
23738     }
23739 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier23740     bool operator!=( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
23741     {
23742       return !operator==( rhs );
23743     }
23744 #endif
23745 
23746 
23747 
23748   public:
23749     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier;
23750     const void* pNext = {};
23751     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
23752     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
23753     uint32_t srcQueueFamilyIndex = {};
23754     uint32_t dstQueueFamilyIndex = {};
23755     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
23756     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
23757     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
23758 
23759   };
23760   static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" );
23761   static_assert( std::is_standard_layout<BufferMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
23762 
23763   template <>
23764   struct CppType<StructureType, StructureType::eBufferMemoryBarrier>
23765   {
23766     using Type = BufferMemoryBarrier;
23767   };
23768 
23769   struct BufferMemoryBarrier2KHR
23770   {
23771     static const bool allowDuplicate = false;
23772     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier2KHR;
23773 
23774 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryBarrier2KHRVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23775     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR 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
23776     : srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ )
23777     {}
23778 
23779     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2KHR( BufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23780 
BufferMemoryBarrier2KHRVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23781     BufferMemoryBarrier2KHR( VkBufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
23782       : BufferMemoryBarrier2KHR( *reinterpret_cast<BufferMemoryBarrier2KHR const *>( &rhs ) )
23783     {}
23784 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23785 
23786     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2KHR & operator=( BufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23787 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23788     BufferMemoryBarrier2KHR & operator=( VkBufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
23789     {
23790       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR const *>( &rhs );
23791       return *this;
23792     }
23793 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23794     BufferMemoryBarrier2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23795     {
23796       pNext = pNext_;
23797       return *this;
23798     }
23799 
setSrcStageMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23800     BufferMemoryBarrier2KHR & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT
23801     {
23802       srcStageMask = srcStageMask_;
23803       return *this;
23804     }
23805 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23806     BufferMemoryBarrier2KHR & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
23807     {
23808       srcAccessMask = srcAccessMask_;
23809       return *this;
23810     }
23811 
setDstStageMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23812     BufferMemoryBarrier2KHR & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT
23813     {
23814       dstStageMask = dstStageMask_;
23815       return *this;
23816     }
23817 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23818     BufferMemoryBarrier2KHR & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
23819     {
23820       dstAccessMask = dstAccessMask_;
23821       return *this;
23822     }
23823 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23824     BufferMemoryBarrier2KHR & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
23825     {
23826       srcQueueFamilyIndex = srcQueueFamilyIndex_;
23827       return *this;
23828     }
23829 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23830     BufferMemoryBarrier2KHR & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
23831     {
23832       dstQueueFamilyIndex = dstQueueFamilyIndex_;
23833       return *this;
23834     }
23835 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23836     BufferMemoryBarrier2KHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
23837     {
23838       buffer = buffer_;
23839       return *this;
23840     }
23841 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23842     BufferMemoryBarrier2KHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
23843     {
23844       offset = offset_;
23845       return *this;
23846     }
23847 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23848     BufferMemoryBarrier2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
23849     {
23850       size = size_;
23851       return *this;
23852     }
23853 
23854 
operator VkBufferMemoryBarrier2KHR const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23855     operator VkBufferMemoryBarrier2KHR const&() const VULKAN_HPP_NOEXCEPT
23856     {
23857       return *reinterpret_cast<const VkBufferMemoryBarrier2KHR*>( this );
23858     }
23859 
operator VkBufferMemoryBarrier2KHR&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23860     operator VkBufferMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT
23861     {
23862       return *reinterpret_cast<VkBufferMemoryBarrier2KHR*>( this );
23863     }
23864 
23865 
23866 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23867     auto operator<=>( BufferMemoryBarrier2KHR const& ) const = default;
23868 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23869     bool operator==( BufferMemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23870     {
23871       return ( sType == rhs.sType )
23872           && ( pNext == rhs.pNext )
23873           && ( srcStageMask == rhs.srcStageMask )
23874           && ( srcAccessMask == rhs.srcAccessMask )
23875           && ( dstStageMask == rhs.dstStageMask )
23876           && ( dstAccessMask == rhs.dstAccessMask )
23877           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
23878           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
23879           && ( buffer == rhs.buffer )
23880           && ( offset == rhs.offset )
23881           && ( size == rhs.size );
23882     }
23883 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR23884     bool operator!=( BufferMemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
23885     {
23886       return !operator==( rhs );
23887     }
23888 #endif
23889 
23890 
23891 
23892   public:
23893     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier2KHR;
23894     const void* pNext = {};
23895     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {};
23896     VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {};
23897     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {};
23898     VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {};
23899     uint32_t srcQueueFamilyIndex = {};
23900     uint32_t dstQueueFamilyIndex = {};
23901     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
23902     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
23903     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
23904 
23905   };
23906   static_assert( sizeof( BufferMemoryBarrier2KHR ) == sizeof( VkBufferMemoryBarrier2KHR ), "struct and wrapper have different size!" );
23907   static_assert( std::is_standard_layout<BufferMemoryBarrier2KHR>::value, "struct wrapper is not a standard layout!" );
23908 
23909   template <>
23910   struct CppType<StructureType, StructureType::eBufferMemoryBarrier2KHR>
23911   {
23912     using Type = BufferMemoryBarrier2KHR;
23913   };
23914 
23915   struct BufferMemoryRequirementsInfo2
23916   {
23917     static const bool allowDuplicate = false;
23918     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2;
23919 
23920 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223921     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
23922     : buffer( buffer_ )
23923     {}
23924 
23925     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23926 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223927     BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
23928       : BufferMemoryRequirementsInfo2( *reinterpret_cast<BufferMemoryRequirementsInfo2 const *>( &rhs ) )
23929     {}
23930 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23931 
23932     VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23933 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223934     BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
23935     {
23936       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const *>( &rhs );
23937       return *this;
23938     }
23939 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223940     BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23941     {
23942       pNext = pNext_;
23943       return *this;
23944     }
23945 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223946     BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
23947     {
23948       buffer = buffer_;
23949       return *this;
23950     }
23951 
23952 
operator VkBufferMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223953     operator VkBufferMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
23954     {
23955       return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( this );
23956     }
23957 
operator VkBufferMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223958     operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
23959     {
23960       return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>( this );
23961     }
23962 
23963 
23964 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23965     auto operator<=>( BufferMemoryRequirementsInfo2 const& ) const = default;
23966 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223967     bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
23968     {
23969       return ( sType == rhs.sType )
23970           && ( pNext == rhs.pNext )
23971           && ( buffer == rhs.buffer );
23972     }
23973 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo223974     bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
23975     {
23976       return !operator==( rhs );
23977     }
23978 #endif
23979 
23980 
23981 
23982   public:
23983     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
23984     const void* pNext = {};
23985     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
23986 
23987   };
23988   static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
23989   static_assert( std::is_standard_layout<BufferMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
23990 
23991   template <>
23992   struct CppType<StructureType, StructureType::eBufferMemoryRequirementsInfo2>
23993   {
23994     using Type = BufferMemoryRequirementsInfo2;
23995   };
23996   using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
23997 
23998   struct BufferOpaqueCaptureAddressCreateInfo
23999   {
24000     static const bool allowDuplicate = false;
24001     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
24002 
24003 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24004     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT
24005     : opaqueCaptureAddress( opaqueCaptureAddress_ )
24006     {}
24007 
24008     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24009 
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24010     BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24011       : BufferOpaqueCaptureAddressCreateInfo( *reinterpret_cast<BufferOpaqueCaptureAddressCreateInfo const *>( &rhs ) )
24012     {}
24013 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24014 
24015     VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24016 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24017     BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24018     {
24019       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const *>( &rhs );
24020       return *this;
24021     }
24022 
setPNextVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24023     BufferOpaqueCaptureAddressCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24024     {
24025       pNext = pNext_;
24026       return *this;
24027     }
24028 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24029     BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
24030     {
24031       opaqueCaptureAddress = opaqueCaptureAddress_;
24032       return *this;
24033     }
24034 
24035 
operator VkBufferOpaqueCaptureAddressCreateInfo const&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24036     operator VkBufferOpaqueCaptureAddressCreateInfo const&() const VULKAN_HPP_NOEXCEPT
24037     {
24038       return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>( this );
24039     }
24040 
operator VkBufferOpaqueCaptureAddressCreateInfo&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24041     operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
24042     {
24043       return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>( this );
24044     }
24045 
24046 
24047 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24048     auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const& ) const = default;
24049 #else
operator ==VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24050     bool operator==( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24051     {
24052       return ( sType == rhs.sType )
24053           && ( pNext == rhs.pNext )
24054           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
24055     }
24056 
operator !=VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo24057     bool operator!=( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24058     {
24059       return !operator==( rhs );
24060     }
24061 #endif
24062 
24063 
24064 
24065   public:
24066     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
24067     const void* pNext = {};
24068     uint64_t opaqueCaptureAddress = {};
24069 
24070   };
24071   static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), "struct and wrapper have different size!" );
24072   static_assert( std::is_standard_layout<BufferOpaqueCaptureAddressCreateInfo>::value, "struct wrapper is not a standard layout!" );
24073 
24074   template <>
24075   struct CppType<StructureType, StructureType::eBufferOpaqueCaptureAddressCreateInfo>
24076   {
24077     using Type = BufferOpaqueCaptureAddressCreateInfo;
24078   };
24079   using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
24080 
24081   struct BufferViewCreateInfo
24082   {
24083     static const bool allowDuplicate = false;
24084     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo;
24085 
24086 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo24087     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
24088     : flags( flags_ ), buffer( buffer_ ), format( format_ ), offset( offset_ ), range( range_ )
24089     {}
24090 
24091     VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24092 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo24093     BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24094       : BufferViewCreateInfo( *reinterpret_cast<BufferViewCreateInfo const *>( &rhs ) )
24095     {}
24096 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24097 
24098     VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24099 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo24100     BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24101     {
24102       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const *>( &rhs );
24103       return *this;
24104     }
24105 
setPNextVULKAN_HPP_NAMESPACE::BufferViewCreateInfo24106     BufferViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24107     {
24108       pNext = pNext_;
24109       return *this;
24110     }
24111 
setFlagsVULKAN_HPP_NAMESPACE::BufferViewCreateInfo24112     BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
24113     {
24114       flags = flags_;
24115       return *this;
24116     }
24117 
setBufferVULKAN_HPP_NAMESPACE::BufferViewCreateInfo24118     BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
24119     {
24120       buffer = buffer_;
24121       return *this;
24122     }
24123 
setFormatVULKAN_HPP_NAMESPACE::BufferViewCreateInfo24124     BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
24125     {
24126       format = format_;
24127       return *this;
24128     }
24129 
setOffsetVULKAN_HPP_NAMESPACE::BufferViewCreateInfo24130     BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
24131     {
24132       offset = offset_;
24133       return *this;
24134     }
24135 
setRangeVULKAN_HPP_NAMESPACE::BufferViewCreateInfo24136     BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
24137     {
24138       range = range_;
24139       return *this;
24140     }
24141 
24142 
operator VkBufferViewCreateInfo const&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo24143     operator VkBufferViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
24144     {
24145       return *reinterpret_cast<const VkBufferViewCreateInfo*>( this );
24146     }
24147 
operator VkBufferViewCreateInfo&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo24148     operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
24149     {
24150       return *reinterpret_cast<VkBufferViewCreateInfo*>( this );
24151     }
24152 
24153 
24154 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24155     auto operator<=>( BufferViewCreateInfo const& ) const = default;
24156 #else
operator ==VULKAN_HPP_NAMESPACE::BufferViewCreateInfo24157     bool operator==( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24158     {
24159       return ( sType == rhs.sType )
24160           && ( pNext == rhs.pNext )
24161           && ( flags == rhs.flags )
24162           && ( buffer == rhs.buffer )
24163           && ( format == rhs.format )
24164           && ( offset == rhs.offset )
24165           && ( range == rhs.range );
24166     }
24167 
operator !=VULKAN_HPP_NAMESPACE::BufferViewCreateInfo24168     bool operator!=( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24169     {
24170       return !operator==( rhs );
24171     }
24172 #endif
24173 
24174 
24175 
24176   public:
24177     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo;
24178     const void* pNext = {};
24179     VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {};
24180     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
24181     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
24182     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
24183     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
24184 
24185   };
24186   static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" );
24187   static_assert( std::is_standard_layout<BufferViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
24188 
24189   template <>
24190   struct CppType<StructureType, StructureType::eBufferViewCreateInfo>
24191   {
24192     using Type = BufferViewCreateInfo;
24193   };
24194 
24195   struct CalibratedTimestampInfoEXT
24196   {
24197     static const bool allowDuplicate = false;
24198     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT;
24199 
24200 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24201     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT(VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice) VULKAN_HPP_NOEXCEPT
24202     : timeDomain( timeDomain_ )
24203     {}
24204 
24205     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24206 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24207     CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24208       : CalibratedTimestampInfoEXT( *reinterpret_cast<CalibratedTimestampInfoEXT const *>( &rhs ) )
24209     {}
24210 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24211 
24212     VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24213 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24214     CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24215     {
24216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>( &rhs );
24217       return *this;
24218     }
24219 
setPNextVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24220     CalibratedTimestampInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24221     {
24222       pNext = pNext_;
24223       return *this;
24224     }
24225 
setTimeDomainVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24226     CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
24227     {
24228       timeDomain = timeDomain_;
24229       return *this;
24230     }
24231 
24232 
operator VkCalibratedTimestampInfoEXT const&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24233     operator VkCalibratedTimestampInfoEXT const&() const VULKAN_HPP_NOEXCEPT
24234     {
24235       return *reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( this );
24236     }
24237 
operator VkCalibratedTimestampInfoEXT&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24238     operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
24239     {
24240       return *reinterpret_cast<VkCalibratedTimestampInfoEXT*>( this );
24241     }
24242 
24243 
24244 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24245     auto operator<=>( CalibratedTimestampInfoEXT const& ) const = default;
24246 #else
operator ==VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24247     bool operator==( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
24248     {
24249       return ( sType == rhs.sType )
24250           && ( pNext == rhs.pNext )
24251           && ( timeDomain == rhs.timeDomain );
24252     }
24253 
operator !=VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT24254     bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
24255     {
24256       return !operator==( rhs );
24257     }
24258 #endif
24259 
24260 
24261 
24262   public:
24263     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
24264     const void* pNext = {};
24265     VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
24266 
24267   };
24268   static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" );
24269   static_assert( std::is_standard_layout<CalibratedTimestampInfoEXT>::value, "struct wrapper is not a standard layout!" );
24270 
24271   template <>
24272   struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
24273   {
24274     using Type = CalibratedTimestampInfoEXT;
24275   };
24276 
24277   struct CheckpointData2NV
24278   {
24279     static const bool allowDuplicate = false;
24280     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointData2Nv;
24281 
24282 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CheckpointData2NVVULKAN_HPP_NAMESPACE::CheckpointData2NV24283     VULKAN_HPP_CONSTEXPR CheckpointData2NV(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage_ = {}, void* pCheckpointMarker_ = {}) VULKAN_HPP_NOEXCEPT
24284     : stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ )
24285     {}
24286 
24287     VULKAN_HPP_CONSTEXPR CheckpointData2NV( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24288 
CheckpointData2NVVULKAN_HPP_NAMESPACE::CheckpointData2NV24289     CheckpointData2NV( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT
24290       : CheckpointData2NV( *reinterpret_cast<CheckpointData2NV const *>( &rhs ) )
24291     {}
24292 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24293 
24294     VULKAN_HPP_CONSTEXPR_14 CheckpointData2NV & operator=( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24295 
operator =VULKAN_HPP_NAMESPACE::CheckpointData2NV24296     CheckpointData2NV & operator=( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT
24297     {
24298       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointData2NV const *>( &rhs );
24299       return *this;
24300     }
24301 
24302 
operator VkCheckpointData2NV const&VULKAN_HPP_NAMESPACE::CheckpointData2NV24303     operator VkCheckpointData2NV const&() const VULKAN_HPP_NOEXCEPT
24304     {
24305       return *reinterpret_cast<const VkCheckpointData2NV*>( this );
24306     }
24307 
operator VkCheckpointData2NV&VULKAN_HPP_NAMESPACE::CheckpointData2NV24308     operator VkCheckpointData2NV &() VULKAN_HPP_NOEXCEPT
24309     {
24310       return *reinterpret_cast<VkCheckpointData2NV*>( this );
24311     }
24312 
24313 
24314 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24315     auto operator<=>( CheckpointData2NV const& ) const = default;
24316 #else
operator ==VULKAN_HPP_NAMESPACE::CheckpointData2NV24317     bool operator==( CheckpointData2NV const& rhs ) const VULKAN_HPP_NOEXCEPT
24318     {
24319       return ( sType == rhs.sType )
24320           && ( pNext == rhs.pNext )
24321           && ( stage == rhs.stage )
24322           && ( pCheckpointMarker == rhs.pCheckpointMarker );
24323     }
24324 
operator !=VULKAN_HPP_NAMESPACE::CheckpointData2NV24325     bool operator!=( CheckpointData2NV const& rhs ) const VULKAN_HPP_NOEXCEPT
24326     {
24327       return !operator==( rhs );
24328     }
24329 #endif
24330 
24331 
24332 
24333   public:
24334     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointData2Nv;
24335     void* pNext = {};
24336     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage = {};
24337     void* pCheckpointMarker = {};
24338 
24339   };
24340   static_assert( sizeof( CheckpointData2NV ) == sizeof( VkCheckpointData2NV ), "struct and wrapper have different size!" );
24341   static_assert( std::is_standard_layout<CheckpointData2NV>::value, "struct wrapper is not a standard layout!" );
24342 
24343   template <>
24344   struct CppType<StructureType, StructureType::eCheckpointData2Nv>
24345   {
24346     using Type = CheckpointData2NV;
24347   };
24348 
24349   struct CheckpointDataNV
24350   {
24351     static const bool allowDuplicate = false;
24352     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV;
24353 
24354 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV24355     VULKAN_HPP_CONSTEXPR CheckpointDataNV(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, void* pCheckpointMarker_ = {}) VULKAN_HPP_NOEXCEPT
24356     : stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ )
24357     {}
24358 
24359     VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24360 
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV24361     CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
24362       : CheckpointDataNV( *reinterpret_cast<CheckpointDataNV const *>( &rhs ) )
24363     {}
24364 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24365 
24366     VULKAN_HPP_CONSTEXPR_14 CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24367 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV24368     CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
24369     {
24370       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointDataNV const *>( &rhs );
24371       return *this;
24372     }
24373 
24374 
operator VkCheckpointDataNV const&VULKAN_HPP_NAMESPACE::CheckpointDataNV24375     operator VkCheckpointDataNV const&() const VULKAN_HPP_NOEXCEPT
24376     {
24377       return *reinterpret_cast<const VkCheckpointDataNV*>( this );
24378     }
24379 
operator VkCheckpointDataNV&VULKAN_HPP_NAMESPACE::CheckpointDataNV24380     operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
24381     {
24382       return *reinterpret_cast<VkCheckpointDataNV*>( this );
24383     }
24384 
24385 
24386 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24387     auto operator<=>( CheckpointDataNV const& ) const = default;
24388 #else
operator ==VULKAN_HPP_NAMESPACE::CheckpointDataNV24389     bool operator==( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
24390     {
24391       return ( sType == rhs.sType )
24392           && ( pNext == rhs.pNext )
24393           && ( stage == rhs.stage )
24394           && ( pCheckpointMarker == rhs.pCheckpointMarker );
24395     }
24396 
operator !=VULKAN_HPP_NAMESPACE::CheckpointDataNV24397     bool operator!=( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
24398     {
24399       return !operator==( rhs );
24400     }
24401 #endif
24402 
24403 
24404 
24405   public:
24406     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV;
24407     void* pNext = {};
24408     VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe;
24409     void* pCheckpointMarker = {};
24410 
24411   };
24412   static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" );
24413   static_assert( std::is_standard_layout<CheckpointDataNV>::value, "struct wrapper is not a standard layout!" );
24414 
24415   template <>
24416   struct CppType<StructureType, StructureType::eCheckpointDataNV>
24417   {
24418     using Type = CheckpointDataNV;
24419   };
24420 
24421   union ClearColorValue
24422   {
ClearColorValue(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)24423     ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const& rhs ) VULKAN_HPP_NOEXCEPT
24424     {
24425       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
24426     }
24427 
ClearColorValue(const std::array<float,4> & float32_={} )24428     ClearColorValue( const std::array<float,4>& float32_ = {} )
24429       : float32( float32_ )
24430     {}
24431 
ClearColorValue(const std::array<int32_t,4> & int32_)24432     ClearColorValue( const std::array<int32_t,4>& int32_ )
24433       : int32( int32_ )
24434     {}
24435 
ClearColorValue(const std::array<uint32_t,4> & uint32_)24436     ClearColorValue( const std::array<uint32_t,4>& uint32_ )
24437       : uint32( uint32_ )
24438     {}
24439 
setFloat32(std::array<float,4> float32_)24440     ClearColorValue & setFloat32( std::array<float,4> float32_ ) VULKAN_HPP_NOEXCEPT
24441     {
24442       float32 = float32_;
24443       return *this;
24444     }
24445 
setInt32(std::array<int32_t,4> int32_)24446     ClearColorValue & setInt32( std::array<int32_t,4> int32_ ) VULKAN_HPP_NOEXCEPT
24447     {
24448       int32 = int32_;
24449       return *this;
24450     }
24451 
setUint32(std::array<uint32_t,4> uint32_)24452     ClearColorValue & setUint32( std::array<uint32_t,4> uint32_ ) VULKAN_HPP_NOEXCEPT
24453     {
24454       uint32 = uint32_;
24455       return *this;
24456     }
24457 
operator =(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)24458     VULKAN_HPP_NAMESPACE::ClearColorValue & operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT
24459     {
24460       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
24461       return *this;
24462     }
24463 
operator VkClearColorValue const&() const24464     operator VkClearColorValue const&() const
24465     {
24466       return *reinterpret_cast<const VkClearColorValue*>(this);
24467     }
24468 
operator VkClearColorValue&()24469     operator VkClearColorValue &()
24470     {
24471       return *reinterpret_cast<VkClearColorValue*>(this);
24472     }
24473 
24474     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> float32;
24475     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, 4> int32;
24476     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 4> uint32;
24477   };
24478 
24479   struct ClearDepthStencilValue
24480   {
24481 
24482 
24483 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue24484     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue(float depth_ = {}, uint32_t stencil_ = {}) VULKAN_HPP_NOEXCEPT
24485     : depth( depth_ ), stencil( stencil_ )
24486     {}
24487 
24488     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24489 
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue24490     ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
24491       : ClearDepthStencilValue( *reinterpret_cast<ClearDepthStencilValue const *>( &rhs ) )
24492     {}
24493 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24494 
24495     VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24496 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue24497     ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
24498     {
24499       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const *>( &rhs );
24500       return *this;
24501     }
24502 
setDepthVULKAN_HPP_NAMESPACE::ClearDepthStencilValue24503     ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
24504     {
24505       depth = depth_;
24506       return *this;
24507     }
24508 
setStencilVULKAN_HPP_NAMESPACE::ClearDepthStencilValue24509     ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT
24510     {
24511       stencil = stencil_;
24512       return *this;
24513     }
24514 
24515 
operator VkClearDepthStencilValue const&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue24516     operator VkClearDepthStencilValue const&() const VULKAN_HPP_NOEXCEPT
24517     {
24518       return *reinterpret_cast<const VkClearDepthStencilValue*>( this );
24519     }
24520 
operator VkClearDepthStencilValue&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue24521     operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
24522     {
24523       return *reinterpret_cast<VkClearDepthStencilValue*>( this );
24524     }
24525 
24526 
24527 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24528     auto operator<=>( ClearDepthStencilValue const& ) const = default;
24529 #else
operator ==VULKAN_HPP_NAMESPACE::ClearDepthStencilValue24530     bool operator==( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
24531     {
24532       return ( depth == rhs.depth )
24533           && ( stencil == rhs.stencil );
24534     }
24535 
operator !=VULKAN_HPP_NAMESPACE::ClearDepthStencilValue24536     bool operator!=( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
24537     {
24538       return !operator==( rhs );
24539     }
24540 #endif
24541 
24542 
24543 
24544   public:
24545     float depth = {};
24546     uint32_t stencil = {};
24547 
24548   };
24549   static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" );
24550   static_assert( std::is_standard_layout<ClearDepthStencilValue>::value, "struct wrapper is not a standard layout!" );
24551 
24552   union ClearValue
24553   {
ClearValue(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)24554     ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const& rhs ) VULKAN_HPP_NOEXCEPT
24555     {
24556       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
24557     }
24558 
ClearValue(VULKAN_HPP_NAMESPACE::ClearColorValue color_={} )24559     ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} )
24560       : color( color_ )
24561     {}
24562 
ClearValue(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_)24563     ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ )
24564       : depthStencil( depthStencil_ )
24565     {}
24566 
setColor(VULKAN_HPP_NAMESPACE::ClearColorValue const & color_)24567     ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
24568     {
24569       color = color_;
24570       return *this;
24571     }
24572 
setDepthStencil(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_)24573     ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT
24574     {
24575       depthStencil = depthStencil_;
24576       return *this;
24577     }
24578 
operator =(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)24579     VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT
24580     {
24581       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
24582       return *this;
24583     }
24584 
operator VkClearValue const&() const24585     operator VkClearValue const&() const
24586     {
24587       return *reinterpret_cast<const VkClearValue*>(this);
24588     }
24589 
operator VkClearValue&()24590     operator VkClearValue &()
24591     {
24592       return *reinterpret_cast<VkClearValue*>(this);
24593     }
24594 
24595 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
24596     VULKAN_HPP_NAMESPACE::ClearColorValue color;
24597     VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil;
24598 #else
24599     VkClearColorValue color;
24600     VkClearDepthStencilValue depthStencil;
24601 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
24602   };
24603 
24604   struct ClearAttachment
24605   {
24606 
24607 
24608 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment24609     ClearAttachment(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t colorAttachment_ = {}, VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {}) VULKAN_HPP_NOEXCEPT
24610     : aspectMask( aspectMask_ ), colorAttachment( colorAttachment_ ), clearValue( clearValue_ )
24611     {}
24612 
24613     ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24614 
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment24615     ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
24616       : ClearAttachment( *reinterpret_cast<ClearAttachment const *>( &rhs ) )
24617     {}
24618 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24619 
24620     ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24621 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment24622     ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
24623     {
24624       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearAttachment const *>( &rhs );
24625       return *this;
24626     }
24627 
setAspectMaskVULKAN_HPP_NAMESPACE::ClearAttachment24628     ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
24629     {
24630       aspectMask = aspectMask_;
24631       return *this;
24632     }
24633 
setColorAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment24634     ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT
24635     {
24636       colorAttachment = colorAttachment_;
24637       return *this;
24638     }
24639 
setClearValueVULKAN_HPP_NAMESPACE::ClearAttachment24640     ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
24641     {
24642       clearValue = clearValue_;
24643       return *this;
24644     }
24645 
24646 
operator VkClearAttachment const&VULKAN_HPP_NAMESPACE::ClearAttachment24647     operator VkClearAttachment const&() const VULKAN_HPP_NOEXCEPT
24648     {
24649       return *reinterpret_cast<const VkClearAttachment*>( this );
24650     }
24651 
operator VkClearAttachment&VULKAN_HPP_NAMESPACE::ClearAttachment24652     operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
24653     {
24654       return *reinterpret_cast<VkClearAttachment*>( this );
24655     }
24656 
24657 
24658 
24659 
24660   public:
24661     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
24662     uint32_t colorAttachment = {};
24663     VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
24664 
24665   };
24666   static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" );
24667   static_assert( std::is_standard_layout<ClearAttachment>::value, "struct wrapper is not a standard layout!" );
24668 
24669   struct ClearRect
24670   {
24671 
24672 
24673 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearRectVULKAN_HPP_NAMESPACE::ClearRect24674     VULKAN_HPP_CONSTEXPR ClearRect(VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
24675     : rect( rect_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
24676     {}
24677 
24678     VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24679 
ClearRectVULKAN_HPP_NAMESPACE::ClearRect24680     ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
24681       : ClearRect( *reinterpret_cast<ClearRect const *>( &rhs ) )
24682     {}
24683 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24684 
24685     VULKAN_HPP_CONSTEXPR_14 ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24686 
operator =VULKAN_HPP_NAMESPACE::ClearRect24687     ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
24688     {
24689       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearRect const *>( &rhs );
24690       return *this;
24691     }
24692 
setRectVULKAN_HPP_NAMESPACE::ClearRect24693     ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
24694     {
24695       rect = rect_;
24696       return *this;
24697     }
24698 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ClearRect24699     ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
24700     {
24701       baseArrayLayer = baseArrayLayer_;
24702       return *this;
24703     }
24704 
setLayerCountVULKAN_HPP_NAMESPACE::ClearRect24705     ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
24706     {
24707       layerCount = layerCount_;
24708       return *this;
24709     }
24710 
24711 
operator VkClearRect const&VULKAN_HPP_NAMESPACE::ClearRect24712     operator VkClearRect const&() const VULKAN_HPP_NOEXCEPT
24713     {
24714       return *reinterpret_cast<const VkClearRect*>( this );
24715     }
24716 
operator VkClearRect&VULKAN_HPP_NAMESPACE::ClearRect24717     operator VkClearRect &() VULKAN_HPP_NOEXCEPT
24718     {
24719       return *reinterpret_cast<VkClearRect*>( this );
24720     }
24721 
24722 
24723 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24724     auto operator<=>( ClearRect const& ) const = default;
24725 #else
operator ==VULKAN_HPP_NAMESPACE::ClearRect24726     bool operator==( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
24727     {
24728       return ( rect == rhs.rect )
24729           && ( baseArrayLayer == rhs.baseArrayLayer )
24730           && ( layerCount == rhs.layerCount );
24731     }
24732 
operator !=VULKAN_HPP_NAMESPACE::ClearRect24733     bool operator!=( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
24734     {
24735       return !operator==( rhs );
24736     }
24737 #endif
24738 
24739 
24740 
24741   public:
24742     VULKAN_HPP_NAMESPACE::Rect2D rect = {};
24743     uint32_t baseArrayLayer = {};
24744     uint32_t layerCount = {};
24745 
24746   };
24747   static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" );
24748   static_assert( std::is_standard_layout<ClearRect>::value, "struct wrapper is not a standard layout!" );
24749 
24750   struct CoarseSampleLocationNV
24751   {
24752 
24753 
24754 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24755     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV(uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {}) VULKAN_HPP_NOEXCEPT
24756     : pixelX( pixelX_ ), pixelY( pixelY_ ), sample( sample_ )
24757     {}
24758 
24759     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24760 
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24761     CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
24762       : CoarseSampleLocationNV( *reinterpret_cast<CoarseSampleLocationNV const *>( &rhs ) )
24763     {}
24764 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24765 
24766     VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24767 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24768     CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
24769     {
24770       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const *>( &rhs );
24771       return *this;
24772     }
24773 
setPixelXVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24774     CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
24775     {
24776       pixelX = pixelX_;
24777       return *this;
24778     }
24779 
setPixelYVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24780     CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT
24781     {
24782       pixelY = pixelY_;
24783       return *this;
24784     }
24785 
setSampleVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24786     CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT
24787     {
24788       sample = sample_;
24789       return *this;
24790     }
24791 
24792 
operator VkCoarseSampleLocationNV const&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24793     operator VkCoarseSampleLocationNV const&() const VULKAN_HPP_NOEXCEPT
24794     {
24795       return *reinterpret_cast<const VkCoarseSampleLocationNV*>( this );
24796     }
24797 
operator VkCoarseSampleLocationNV&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24798     operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
24799     {
24800       return *reinterpret_cast<VkCoarseSampleLocationNV*>( this );
24801     }
24802 
24803 
24804 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24805     auto operator<=>( CoarseSampleLocationNV const& ) const = default;
24806 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24807     bool operator==( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
24808     {
24809       return ( pixelX == rhs.pixelX )
24810           && ( pixelY == rhs.pixelY )
24811           && ( sample == rhs.sample );
24812     }
24813 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV24814     bool operator!=( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
24815     {
24816       return !operator==( rhs );
24817     }
24818 #endif
24819 
24820 
24821 
24822   public:
24823     uint32_t pixelX = {};
24824     uint32_t pixelY = {};
24825     uint32_t sample = {};
24826 
24827   };
24828   static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" );
24829   static_assert( std::is_standard_layout<CoarseSampleLocationNV>::value, "struct wrapper is not a standard layout!" );
24830 
24831   struct CoarseSampleOrderCustomNV
24832   {
24833 
24834 
24835 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24836     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
24837     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( sampleLocationCount_ ), pSampleLocations( pSampleLocations_ )
24838     {}
24839 
24840     VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24841 
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24842     CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
24843       : CoarseSampleOrderCustomNV( *reinterpret_cast<CoarseSampleOrderCustomNV const *>( &rhs ) )
24844     {}
24845 
24846 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24847     CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_, uint32_t sampleCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ )
24848     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
24849     {}
24850 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24851 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24852 
24853     VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24854 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24855     CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
24856     {
24857       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const *>( &rhs );
24858       return *this;
24859     }
24860 
setShadingRateVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24861     CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
24862     {
24863       shadingRate = shadingRate_;
24864       return *this;
24865     }
24866 
setSampleCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24867     CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT
24868     {
24869       sampleCount = sampleCount_;
24870       return *this;
24871     }
24872 
setSampleLocationCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24873     CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT
24874     {
24875       sampleLocationCount = sampleLocationCount_;
24876       return *this;
24877     }
24878 
setPSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24879     CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
24880     {
24881       pSampleLocations = pSampleLocations_;
24882       return *this;
24883     }
24884 
24885 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24886     CoarseSampleOrderCustomNV & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
24887     {
24888       sampleLocationCount = static_cast<uint32_t>( sampleLocations_.size() );
24889       pSampleLocations = sampleLocations_.data();
24890       return *this;
24891     }
24892 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24893 
24894 
operator VkCoarseSampleOrderCustomNV const&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24895     operator VkCoarseSampleOrderCustomNV const&() const VULKAN_HPP_NOEXCEPT
24896     {
24897       return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( this );
24898     }
24899 
operator VkCoarseSampleOrderCustomNV&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24900     operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
24901     {
24902       return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>( this );
24903     }
24904 
24905 
24906 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24907     auto operator<=>( CoarseSampleOrderCustomNV const& ) const = default;
24908 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24909     bool operator==( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
24910     {
24911       return ( shadingRate == rhs.shadingRate )
24912           && ( sampleCount == rhs.sampleCount )
24913           && ( sampleLocationCount == rhs.sampleLocationCount )
24914           && ( pSampleLocations == rhs.pSampleLocations );
24915     }
24916 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV24917     bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
24918     {
24919       return !operator==( rhs );
24920     }
24921 #endif
24922 
24923 
24924 
24925   public:
24926     VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations;
24927     uint32_t sampleCount = {};
24928     uint32_t sampleLocationCount = {};
24929     const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations = {};
24930 
24931   };
24932   static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" );
24933   static_assert( std::is_standard_layout<CoarseSampleOrderCustomNV>::value, "struct wrapper is not a standard layout!" );
24934 
24935   class CommandPool
24936   {
24937   public:
24938     using CType = VkCommandPool;
24939 
24940     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool;
24941     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
24942 
24943   public:
CommandPool()24944     VULKAN_HPP_CONSTEXPR CommandPool() VULKAN_HPP_NOEXCEPT
24945       : m_commandPool(VK_NULL_HANDLE)
24946     {}
24947 
CommandPool(std::nullptr_t)24948     VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24949       : m_commandPool(VK_NULL_HANDLE)
24950     {}
24951 
CommandPool(VkCommandPool commandPool)24952     VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT
24953       : m_commandPool( commandPool )
24954     {}
24955 
24956 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandPool commandPool)24957     CommandPool & operator=(VkCommandPool commandPool) VULKAN_HPP_NOEXCEPT
24958     {
24959       m_commandPool = commandPool;
24960       return *this;
24961     }
24962 #endif
24963 
operator =(std::nullptr_t)24964     CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24965     {
24966       m_commandPool = VK_NULL_HANDLE;
24967       return *this;
24968     }
24969 
24970 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24971     auto operator<=>( CommandPool const& ) const = default;
24972 #else
operator ==(CommandPool const & rhs) const24973     bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
24974     {
24975       return m_commandPool == rhs.m_commandPool;
24976     }
24977 
operator !=(CommandPool const & rhs) const24978     bool operator!=(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
24979     {
24980       return m_commandPool != rhs.m_commandPool;
24981     }
24982 
operator <(CommandPool const & rhs) const24983     bool operator<(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
24984     {
24985       return m_commandPool < rhs.m_commandPool;
24986     }
24987 #endif
24988 
operator VkCommandPool() const24989     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT
24990     {
24991       return m_commandPool;
24992     }
24993 
operator bool() const24994     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24995     {
24996       return m_commandPool != VK_NULL_HANDLE;
24997     }
24998 
operator !() const24999     bool operator!() const VULKAN_HPP_NOEXCEPT
25000     {
25001       return m_commandPool == VK_NULL_HANDLE;
25002     }
25003 
25004   private:
25005     VkCommandPool m_commandPool;
25006   };
25007   static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" );
25008 
25009   template <>
25010   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandPool>
25011   {
25012     using type = VULKAN_HPP_NAMESPACE::CommandPool;
25013   };
25014 
25015   template <>
25016   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool>
25017   {
25018     using Type = VULKAN_HPP_NAMESPACE::CommandPool;
25019   };
25020 
25021 
25022   template <>
25023   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool>
25024   {
25025     using Type = VULKAN_HPP_NAMESPACE::CommandPool;
25026   };
25027 
25028 
25029   template <>
25030   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CommandPool>
25031   {
25032     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25033   };
25034 
25035   struct CommandBufferAllocateInfo
25036   {
25037     static const bool allowDuplicate = false;
25038     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo;
25039 
25040 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25041     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
25042     : commandPool( commandPool_ ), level( level_ ), commandBufferCount( commandBufferCount_ )
25043     {}
25044 
25045     VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25046 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25047     CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25048       : CommandBufferAllocateInfo( *reinterpret_cast<CommandBufferAllocateInfo const *>( &rhs ) )
25049     {}
25050 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25051 
25052     VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25053 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25054     CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25055     {
25056       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const *>( &rhs );
25057       return *this;
25058     }
25059 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25060     CommandBufferAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25061     {
25062       pNext = pNext_;
25063       return *this;
25064     }
25065 
setCommandPoolVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25066     CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT
25067     {
25068       commandPool = commandPool_;
25069       return *this;
25070     }
25071 
setLevelVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25072     CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT
25073     {
25074       level = level_;
25075       return *this;
25076     }
25077 
setCommandBufferCountVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25078     CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
25079     {
25080       commandBufferCount = commandBufferCount_;
25081       return *this;
25082     }
25083 
25084 
operator VkCommandBufferAllocateInfo const&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25085     operator VkCommandBufferAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
25086     {
25087       return *reinterpret_cast<const VkCommandBufferAllocateInfo*>( this );
25088     }
25089 
operator VkCommandBufferAllocateInfo&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25090     operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
25091     {
25092       return *reinterpret_cast<VkCommandBufferAllocateInfo*>( this );
25093     }
25094 
25095 
25096 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25097     auto operator<=>( CommandBufferAllocateInfo const& ) const = default;
25098 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25099     bool operator==( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25100     {
25101       return ( sType == rhs.sType )
25102           && ( pNext == rhs.pNext )
25103           && ( commandPool == rhs.commandPool )
25104           && ( level == rhs.level )
25105           && ( commandBufferCount == rhs.commandBufferCount );
25106     }
25107 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo25108     bool operator!=( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25109     {
25110       return !operator==( rhs );
25111     }
25112 #endif
25113 
25114 
25115 
25116   public:
25117     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo;
25118     const void* pNext = {};
25119     VULKAN_HPP_NAMESPACE::CommandPool commandPool = {};
25120     VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary;
25121     uint32_t commandBufferCount = {};
25122 
25123   };
25124   static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" );
25125   static_assert( std::is_standard_layout<CommandBufferAllocateInfo>::value, "struct wrapper is not a standard layout!" );
25126 
25127   template <>
25128   struct CppType<StructureType, StructureType::eCommandBufferAllocateInfo>
25129   {
25130     using Type = CommandBufferAllocateInfo;
25131   };
25132 
25133   class RenderPass
25134   {
25135   public:
25136     using CType = VkRenderPass;
25137 
25138     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass;
25139     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
25140 
25141   public:
RenderPass()25142     VULKAN_HPP_CONSTEXPR RenderPass() VULKAN_HPP_NOEXCEPT
25143       : m_renderPass(VK_NULL_HANDLE)
25144     {}
25145 
RenderPass(std::nullptr_t)25146     VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25147       : m_renderPass(VK_NULL_HANDLE)
25148     {}
25149 
RenderPass(VkRenderPass renderPass)25150     VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT
25151       : m_renderPass( renderPass )
25152     {}
25153 
25154 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkRenderPass renderPass)25155     RenderPass & operator=(VkRenderPass renderPass) VULKAN_HPP_NOEXCEPT
25156     {
25157       m_renderPass = renderPass;
25158       return *this;
25159     }
25160 #endif
25161 
operator =(std::nullptr_t)25162     RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25163     {
25164       m_renderPass = VK_NULL_HANDLE;
25165       return *this;
25166     }
25167 
25168 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25169     auto operator<=>( RenderPass const& ) const = default;
25170 #else
operator ==(RenderPass const & rhs) const25171     bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
25172     {
25173       return m_renderPass == rhs.m_renderPass;
25174     }
25175 
operator !=(RenderPass const & rhs) const25176     bool operator!=(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
25177     {
25178       return m_renderPass != rhs.m_renderPass;
25179     }
25180 
operator <(RenderPass const & rhs) const25181     bool operator<(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
25182     {
25183       return m_renderPass < rhs.m_renderPass;
25184     }
25185 #endif
25186 
operator VkRenderPass() const25187     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT
25188     {
25189       return m_renderPass;
25190     }
25191 
operator bool() const25192     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25193     {
25194       return m_renderPass != VK_NULL_HANDLE;
25195     }
25196 
operator !() const25197     bool operator!() const VULKAN_HPP_NOEXCEPT
25198     {
25199       return m_renderPass == VK_NULL_HANDLE;
25200     }
25201 
25202   private:
25203     VkRenderPass m_renderPass;
25204   };
25205   static_assert( sizeof( VULKAN_HPP_NAMESPACE::RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" );
25206 
25207   template <>
25208   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eRenderPass>
25209   {
25210     using type = VULKAN_HPP_NAMESPACE::RenderPass;
25211   };
25212 
25213   template <>
25214   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass>
25215   {
25216     using Type = VULKAN_HPP_NAMESPACE::RenderPass;
25217   };
25218 
25219 
25220   template <>
25221   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass>
25222   {
25223     using Type = VULKAN_HPP_NAMESPACE::RenderPass;
25224   };
25225 
25226 
25227   template <>
25228   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::RenderPass>
25229   {
25230     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25231   };
25232 
25233   class Framebuffer
25234   {
25235   public:
25236     using CType = VkFramebuffer;
25237 
25238     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer;
25239     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
25240 
25241   public:
Framebuffer()25242     VULKAN_HPP_CONSTEXPR Framebuffer() VULKAN_HPP_NOEXCEPT
25243       : m_framebuffer(VK_NULL_HANDLE)
25244     {}
25245 
Framebuffer(std::nullptr_t)25246     VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25247       : m_framebuffer(VK_NULL_HANDLE)
25248     {}
25249 
Framebuffer(VkFramebuffer framebuffer)25250     VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT
25251       : m_framebuffer( framebuffer )
25252     {}
25253 
25254 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFramebuffer framebuffer)25255     Framebuffer & operator=(VkFramebuffer framebuffer) VULKAN_HPP_NOEXCEPT
25256     {
25257       m_framebuffer = framebuffer;
25258       return *this;
25259     }
25260 #endif
25261 
operator =(std::nullptr_t)25262     Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25263     {
25264       m_framebuffer = VK_NULL_HANDLE;
25265       return *this;
25266     }
25267 
25268 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25269     auto operator<=>( Framebuffer const& ) const = default;
25270 #else
operator ==(Framebuffer const & rhs) const25271     bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
25272     {
25273       return m_framebuffer == rhs.m_framebuffer;
25274     }
25275 
operator !=(Framebuffer const & rhs) const25276     bool operator!=(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
25277     {
25278       return m_framebuffer != rhs.m_framebuffer;
25279     }
25280 
operator <(Framebuffer const & rhs) const25281     bool operator<(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
25282     {
25283       return m_framebuffer < rhs.m_framebuffer;
25284     }
25285 #endif
25286 
operator VkFramebuffer() const25287     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT
25288     {
25289       return m_framebuffer;
25290     }
25291 
operator bool() const25292     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25293     {
25294       return m_framebuffer != VK_NULL_HANDLE;
25295     }
25296 
operator !() const25297     bool operator!() const VULKAN_HPP_NOEXCEPT
25298     {
25299       return m_framebuffer == VK_NULL_HANDLE;
25300     }
25301 
25302   private:
25303     VkFramebuffer m_framebuffer;
25304   };
25305   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" );
25306 
25307   template <>
25308   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFramebuffer>
25309   {
25310     using type = VULKAN_HPP_NAMESPACE::Framebuffer;
25311   };
25312 
25313   template <>
25314   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer>
25315   {
25316     using Type = VULKAN_HPP_NAMESPACE::Framebuffer;
25317   };
25318 
25319 
25320   template <>
25321   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer>
25322   {
25323     using Type = VULKAN_HPP_NAMESPACE::Framebuffer;
25324   };
25325 
25326 
25327   template <>
25328   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Framebuffer>
25329   {
25330     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25331   };
25332 
25333   struct CommandBufferInheritanceInfo
25334   {
25335     static const bool allowDuplicate = false;
25336     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo;
25337 
25338 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25339     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
25340     : renderPass( renderPass_ ), subpass( subpass_ ), framebuffer( framebuffer_ ), occlusionQueryEnable( occlusionQueryEnable_ ), queryFlags( queryFlags_ ), pipelineStatistics( pipelineStatistics_ )
25341     {}
25342 
25343     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25344 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25345     CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25346       : CommandBufferInheritanceInfo( *reinterpret_cast<CommandBufferInheritanceInfo const *>( &rhs ) )
25347     {}
25348 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25349 
25350     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25351 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25352     CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25353     {
25354       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const *>( &rhs );
25355       return *this;
25356     }
25357 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25358     CommandBufferInheritanceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25359     {
25360       pNext = pNext_;
25361       return *this;
25362     }
25363 
setRenderPassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25364     CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
25365     {
25366       renderPass = renderPass_;
25367       return *this;
25368     }
25369 
setSubpassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25370     CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
25371     {
25372       subpass = subpass_;
25373       return *this;
25374     }
25375 
setFramebufferVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25376     CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
25377     {
25378       framebuffer = framebuffer_;
25379       return *this;
25380     }
25381 
setOcclusionQueryEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25382     CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT
25383     {
25384       occlusionQueryEnable = occlusionQueryEnable_;
25385       return *this;
25386     }
25387 
setQueryFlagsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25388     CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT
25389     {
25390       queryFlags = queryFlags_;
25391       return *this;
25392     }
25393 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25394     CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
25395     {
25396       pipelineStatistics = pipelineStatistics_;
25397       return *this;
25398     }
25399 
25400 
operator VkCommandBufferInheritanceInfo const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25401     operator VkCommandBufferInheritanceInfo const&() const VULKAN_HPP_NOEXCEPT
25402     {
25403       return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>( this );
25404     }
25405 
operator VkCommandBufferInheritanceInfo&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25406     operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
25407     {
25408       return *reinterpret_cast<VkCommandBufferInheritanceInfo*>( this );
25409     }
25410 
25411 
25412 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25413     auto operator<=>( CommandBufferInheritanceInfo const& ) const = default;
25414 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25415     bool operator==( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25416     {
25417       return ( sType == rhs.sType )
25418           && ( pNext == rhs.pNext )
25419           && ( renderPass == rhs.renderPass )
25420           && ( subpass == rhs.subpass )
25421           && ( framebuffer == rhs.framebuffer )
25422           && ( occlusionQueryEnable == rhs.occlusionQueryEnable )
25423           && ( queryFlags == rhs.queryFlags )
25424           && ( pipelineStatistics == rhs.pipelineStatistics );
25425     }
25426 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo25427     bool operator!=( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25428     {
25429       return !operator==( rhs );
25430     }
25431 #endif
25432 
25433 
25434 
25435   public:
25436     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
25437     const void* pNext = {};
25438     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
25439     uint32_t subpass = {};
25440     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
25441     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {};
25442     VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {};
25443     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
25444 
25445   };
25446   static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" );
25447   static_assert( std::is_standard_layout<CommandBufferInheritanceInfo>::value, "struct wrapper is not a standard layout!" );
25448 
25449   template <>
25450   struct CppType<StructureType, StructureType::eCommandBufferInheritanceInfo>
25451   {
25452     using Type = CommandBufferInheritanceInfo;
25453   };
25454 
25455   struct CommandBufferBeginInfo
25456   {
25457     static const bool allowDuplicate = false;
25458     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo;
25459 
25460 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25461     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo(VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ = {}) VULKAN_HPP_NOEXCEPT
25462     : flags( flags_ ), pInheritanceInfo( pInheritanceInfo_ )
25463     {}
25464 
25465     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25466 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25467     CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25468       : CommandBufferBeginInfo( *reinterpret_cast<CommandBufferBeginInfo const *>( &rhs ) )
25469     {}
25470 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25471 
25472     VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25473 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25474     CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25475     {
25476       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const *>( &rhs );
25477       return *this;
25478     }
25479 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25480     CommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25481     {
25482       pNext = pNext_;
25483       return *this;
25484     }
25485 
setFlagsVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25486     CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT
25487     {
25488       flags = flags_;
25489       return *this;
25490     }
25491 
setPInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25492     CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
25493     {
25494       pInheritanceInfo = pInheritanceInfo_;
25495       return *this;
25496     }
25497 
25498 
operator VkCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25499     operator VkCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
25500     {
25501       return *reinterpret_cast<const VkCommandBufferBeginInfo*>( this );
25502     }
25503 
operator VkCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25504     operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
25505     {
25506       return *reinterpret_cast<VkCommandBufferBeginInfo*>( this );
25507     }
25508 
25509 
25510 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25511     auto operator<=>( CommandBufferBeginInfo const& ) const = default;
25512 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25513     bool operator==( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25514     {
25515       return ( sType == rhs.sType )
25516           && ( pNext == rhs.pNext )
25517           && ( flags == rhs.flags )
25518           && ( pInheritanceInfo == rhs.pInheritanceInfo );
25519     }
25520 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo25521     bool operator!=( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25522     {
25523       return !operator==( rhs );
25524     }
25525 #endif
25526 
25527 
25528 
25529   public:
25530     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo;
25531     const void* pNext = {};
25532     VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {};
25533     const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo = {};
25534 
25535   };
25536   static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" );
25537   static_assert( std::is_standard_layout<CommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
25538 
25539   template <>
25540   struct CppType<StructureType, StructureType::eCommandBufferBeginInfo>
25541   {
25542     using Type = CommandBufferBeginInfo;
25543   };
25544 
25545   struct CommandBufferInheritanceConditionalRenderingInfoEXT
25546   {
25547     static const bool allowDuplicate = false;
25548     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
25549 
25550 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25551     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {}) VULKAN_HPP_NOEXCEPT
25552     : conditionalRenderingEnable( conditionalRenderingEnable_ )
25553     {}
25554 
25555     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25556 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25557     CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25558       : CommandBufferInheritanceConditionalRenderingInfoEXT( *reinterpret_cast<CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs ) )
25559     {}
25560 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25561 
25562     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25563 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25564     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25565     {
25566       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs );
25567       return *this;
25568     }
25569 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25570     CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25571     {
25572       pNext = pNext_;
25573       return *this;
25574     }
25575 
setConditionalRenderingEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25576     CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
25577     {
25578       conditionalRenderingEnable = conditionalRenderingEnable_;
25579       return *this;
25580     }
25581 
25582 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25583     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const VULKAN_HPP_NOEXCEPT
25584     {
25585       return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
25586     }
25587 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25588     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
25589     {
25590       return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
25591     }
25592 
25593 
25594 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25595     auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const& ) const = default;
25596 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25597     bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25598     {
25599       return ( sType == rhs.sType )
25600           && ( pNext == rhs.pNext )
25601           && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
25602     }
25603 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT25604     bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25605     {
25606       return !operator==( rhs );
25607     }
25608 #endif
25609 
25610 
25611 
25612   public:
25613     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
25614     const void* pNext = {};
25615     VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {};
25616 
25617   };
25618   static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" );
25619   static_assert( std::is_standard_layout<CommandBufferInheritanceConditionalRenderingInfoEXT>::value, "struct wrapper is not a standard layout!" );
25620 
25621   template <>
25622   struct CppType<StructureType, StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT>
25623   {
25624     using Type = CommandBufferInheritanceConditionalRenderingInfoEXT;
25625   };
25626 
25627   struct CommandBufferInheritanceRenderPassTransformInfoQCOM
25628   {
25629     static const bool allowDuplicate = false;
25630     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
25631 
25632 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25633     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}) VULKAN_HPP_NOEXCEPT
25634     : transform( transform_ ), renderArea( renderArea_ )
25635     {}
25636 
25637     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25638 
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25639     CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
25640       : CommandBufferInheritanceRenderPassTransformInfoQCOM( *reinterpret_cast<CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs ) )
25641     {}
25642 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25643 
25644     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25645 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25646     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
25647     {
25648       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs );
25649       return *this;
25650     }
25651 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25652     CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
25653     {
25654       pNext = pNext_;
25655       return *this;
25656     }
25657 
setTransformVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25658     CommandBufferInheritanceRenderPassTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
25659     {
25660       transform = transform_;
25661       return *this;
25662     }
25663 
setRenderAreaVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25664     CommandBufferInheritanceRenderPassTransformInfoQCOM & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
25665     {
25666       renderArea = renderArea_;
25667       return *this;
25668     }
25669 
25670 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25671     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
25672     {
25673       return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
25674     }
25675 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25676     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
25677     {
25678       return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
25679     }
25680 
25681 
25682 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25683     auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const& ) const = default;
25684 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25685     bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
25686     {
25687       return ( sType == rhs.sType )
25688           && ( pNext == rhs.pNext )
25689           && ( transform == rhs.transform )
25690           && ( renderArea == rhs.renderArea );
25691     }
25692 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM25693     bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
25694     {
25695       return !operator==( rhs );
25696     }
25697 #endif
25698 
25699 
25700 
25701   public:
25702     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
25703     void* pNext = {};
25704     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
25705     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
25706 
25707   };
25708   static_assert( sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) == sizeof( VkCommandBufferInheritanceRenderPassTransformInfoQCOM ), "struct and wrapper have different size!" );
25709   static_assert( std::is_standard_layout<CommandBufferInheritanceRenderPassTransformInfoQCOM>::value, "struct wrapper is not a standard layout!" );
25710 
25711   template <>
25712   struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM>
25713   {
25714     using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM;
25715   };
25716 
25717   struct ConditionalRenderingBeginInfoEXT
25718   {
25719     static const bool allowDuplicate = false;
25720     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT;
25721 
25722 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25723     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
25724     : buffer( buffer_ ), offset( offset_ ), flags( flags_ )
25725     {}
25726 
25727     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25728 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25729     ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25730       : ConditionalRenderingBeginInfoEXT( *reinterpret_cast<ConditionalRenderingBeginInfoEXT const *>( &rhs ) )
25731     {}
25732 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25733 
25734     VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25735 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25736     ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25737     {
25738       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const *>( &rhs );
25739       return *this;
25740     }
25741 
setPNextVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25742     ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25743     {
25744       pNext = pNext_;
25745       return *this;
25746     }
25747 
setBufferVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25748     ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
25749     {
25750       buffer = buffer_;
25751       return *this;
25752     }
25753 
setOffsetVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25754     ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
25755     {
25756       offset = offset_;
25757       return *this;
25758     }
25759 
setFlagsVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25760     ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
25761     {
25762       flags = flags_;
25763       return *this;
25764     }
25765 
25766 
operator VkConditionalRenderingBeginInfoEXT const&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25767     operator VkConditionalRenderingBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
25768     {
25769       return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( this );
25770     }
25771 
operator VkConditionalRenderingBeginInfoEXT&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25772     operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
25773     {
25774       return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>( this );
25775     }
25776 
25777 
25778 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25779     auto operator<=>( ConditionalRenderingBeginInfoEXT const& ) const = default;
25780 #else
operator ==VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25781     bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25782     {
25783       return ( sType == rhs.sType )
25784           && ( pNext == rhs.pNext )
25785           && ( buffer == rhs.buffer )
25786           && ( offset == rhs.offset )
25787           && ( flags == rhs.flags );
25788     }
25789 
operator !=VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25790     bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25791     {
25792       return !operator==( rhs );
25793     }
25794 #endif
25795 
25796 
25797 
25798   public:
25799     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
25800     const void* pNext = {};
25801     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
25802     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
25803     VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {};
25804 
25805   };
25806   static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" );
25807   static_assert( std::is_standard_layout<ConditionalRenderingBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
25808 
25809   template <>
25810   struct CppType<StructureType, StructureType::eConditionalRenderingBeginInfoEXT>
25811   {
25812     using Type = ConditionalRenderingBeginInfoEXT;
25813   };
25814 
25815   struct DebugUtilsLabelEXT
25816   {
25817     static const bool allowDuplicate = false;
25818     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT;
25819 
25820 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25821     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT(const char* pLabelName_ = {}, std::array<float,4> const& color_ = {}) VULKAN_HPP_NOEXCEPT
25822     : pLabelName( pLabelName_ ), color( color_ )
25823     {}
25824 
25825     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25826 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25827     DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25828       : DebugUtilsLabelEXT( *reinterpret_cast<DebugUtilsLabelEXT const *>( &rhs ) )
25829     {}
25830 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25831 
25832     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25833 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25834     DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25835     {
25836       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const *>( &rhs );
25837       return *this;
25838     }
25839 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25840     DebugUtilsLabelEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25841     {
25842       pNext = pNext_;
25843       return *this;
25844     }
25845 
setPLabelNameVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25846     DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ ) VULKAN_HPP_NOEXCEPT
25847     {
25848       pLabelName = pLabelName_;
25849       return *this;
25850     }
25851 
setColorVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25852     DebugUtilsLabelEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
25853     {
25854       color = color_;
25855       return *this;
25856     }
25857 
25858 
operator VkDebugUtilsLabelEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25859     operator VkDebugUtilsLabelEXT const&() const VULKAN_HPP_NOEXCEPT
25860     {
25861       return *reinterpret_cast<const VkDebugUtilsLabelEXT*>( this );
25862     }
25863 
operator VkDebugUtilsLabelEXT&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25864     operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
25865     {
25866       return *reinterpret_cast<VkDebugUtilsLabelEXT*>( this );
25867     }
25868 
25869 
25870 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25871     auto operator<=>( DebugUtilsLabelEXT const& ) const = default;
25872 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25873     bool operator==( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25874     {
25875       return ( sType == rhs.sType )
25876           && ( pNext == rhs.pNext )
25877           && ( pLabelName == rhs.pLabelName )
25878           && ( color == rhs.color );
25879     }
25880 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25881     bool operator!=( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25882     {
25883       return !operator==( rhs );
25884     }
25885 #endif
25886 
25887 
25888 
25889   public:
25890     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT;
25891     const void* pNext = {};
25892     const char* pLabelName = {};
25893     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
25894 
25895   };
25896   static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" );
25897   static_assert( std::is_standard_layout<DebugUtilsLabelEXT>::value, "struct wrapper is not a standard layout!" );
25898 
25899   template <>
25900   struct CppType<StructureType, StructureType::eDebugUtilsLabelEXT>
25901   {
25902     using Type = DebugUtilsLabelEXT;
25903   };
25904 
25905   class QueryPool
25906   {
25907   public:
25908     using CType = VkQueryPool;
25909 
25910     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool;
25911     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
25912 
25913   public:
QueryPool()25914     VULKAN_HPP_CONSTEXPR QueryPool() VULKAN_HPP_NOEXCEPT
25915       : m_queryPool(VK_NULL_HANDLE)
25916     {}
25917 
QueryPool(std::nullptr_t)25918     VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25919       : m_queryPool(VK_NULL_HANDLE)
25920     {}
25921 
QueryPool(VkQueryPool queryPool)25922     VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT
25923       : m_queryPool( queryPool )
25924     {}
25925 
25926 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueryPool queryPool)25927     QueryPool & operator=(VkQueryPool queryPool) VULKAN_HPP_NOEXCEPT
25928     {
25929       m_queryPool = queryPool;
25930       return *this;
25931     }
25932 #endif
25933 
operator =(std::nullptr_t)25934     QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25935     {
25936       m_queryPool = VK_NULL_HANDLE;
25937       return *this;
25938     }
25939 
25940 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25941     auto operator<=>( QueryPool const& ) const = default;
25942 #else
operator ==(QueryPool const & rhs) const25943     bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
25944     {
25945       return m_queryPool == rhs.m_queryPool;
25946     }
25947 
operator !=(QueryPool const & rhs) const25948     bool operator!=(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
25949     {
25950       return m_queryPool != rhs.m_queryPool;
25951     }
25952 
operator <(QueryPool const & rhs) const25953     bool operator<(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
25954     {
25955       return m_queryPool < rhs.m_queryPool;
25956     }
25957 #endif
25958 
operator VkQueryPool() const25959     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT
25960     {
25961       return m_queryPool;
25962     }
25963 
operator bool() const25964     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25965     {
25966       return m_queryPool != VK_NULL_HANDLE;
25967     }
25968 
operator !() const25969     bool operator!() const VULKAN_HPP_NOEXCEPT
25970     {
25971       return m_queryPool == VK_NULL_HANDLE;
25972     }
25973 
25974   private:
25975     VkQueryPool m_queryPool;
25976   };
25977   static_assert( sizeof( VULKAN_HPP_NAMESPACE::QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" );
25978 
25979   template <>
25980   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueryPool>
25981   {
25982     using type = VULKAN_HPP_NAMESPACE::QueryPool;
25983   };
25984 
25985   template <>
25986   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool>
25987   {
25988     using Type = VULKAN_HPP_NAMESPACE::QueryPool;
25989   };
25990 
25991 
25992   template <>
25993   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool>
25994   {
25995     using Type = VULKAN_HPP_NAMESPACE::QueryPool;
25996   };
25997 
25998 
25999   template <>
26000   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::QueryPool>
26001   {
26002     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
26003   };
26004 
26005   struct RenderPassBeginInfo
26006   {
26007     static const bool allowDuplicate = false;
26008     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo;
26009 
26010 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26011     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
26012     : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( clearValueCount_ ), pClearValues( pClearValues_ )
26013     {}
26014 
26015     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26016 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26017     RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26018       : RenderPassBeginInfo( *reinterpret_cast<RenderPassBeginInfo const *>( &rhs ) )
26019     {}
26020 
26021 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26022     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_ )
26023     : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( static_cast<uint32_t>( clearValues_.size() ) ), pClearValues( clearValues_.data() )
26024     {}
26025 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26026 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26027 
26028     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26029 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo26030     RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26031     {
26032       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const *>( &rhs );
26033       return *this;
26034     }
26035 
setPNextVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26036     RenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26037     {
26038       pNext = pNext_;
26039       return *this;
26040     }
26041 
setRenderPassVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26042     RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
26043     {
26044       renderPass = renderPass_;
26045       return *this;
26046     }
26047 
setFramebufferVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26048     RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
26049     {
26050       framebuffer = framebuffer_;
26051       return *this;
26052     }
26053 
setRenderAreaVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26054     RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
26055     {
26056       renderArea = renderArea_;
26057       return *this;
26058     }
26059 
setClearValueCountVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26060     RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT
26061     {
26062       clearValueCount = clearValueCount_;
26063       return *this;
26064     }
26065 
setPClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26066     RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ ) VULKAN_HPP_NOEXCEPT
26067     {
26068       pClearValues = pClearValues_;
26069       return *this;
26070     }
26071 
26072 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo26073     RenderPassBeginInfo & setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ ) VULKAN_HPP_NOEXCEPT
26074     {
26075       clearValueCount = static_cast<uint32_t>( clearValues_.size() );
26076       pClearValues = clearValues_.data();
26077       return *this;
26078     }
26079 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26080 
26081 
operator VkRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo26082     operator VkRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
26083     {
26084       return *reinterpret_cast<const VkRenderPassBeginInfo*>( this );
26085     }
26086 
operator VkRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo26087     operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
26088     {
26089       return *reinterpret_cast<VkRenderPassBeginInfo*>( this );
26090     }
26091 
26092 
26093 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26094     auto operator<=>( RenderPassBeginInfo const& ) const = default;
26095 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassBeginInfo26096     bool operator==( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26097     {
26098       return ( sType == rhs.sType )
26099           && ( pNext == rhs.pNext )
26100           && ( renderPass == rhs.renderPass )
26101           && ( framebuffer == rhs.framebuffer )
26102           && ( renderArea == rhs.renderArea )
26103           && ( clearValueCount == rhs.clearValueCount )
26104           && ( pClearValues == rhs.pClearValues );
26105     }
26106 
operator !=VULKAN_HPP_NAMESPACE::RenderPassBeginInfo26107     bool operator!=( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26108     {
26109       return !operator==( rhs );
26110     }
26111 #endif
26112 
26113 
26114 
26115   public:
26116     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo;
26117     const void* pNext = {};
26118     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
26119     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
26120     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
26121     uint32_t clearValueCount = {};
26122     const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues = {};
26123 
26124   };
26125   static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" );
26126   static_assert( std::is_standard_layout<RenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
26127 
26128   template <>
26129   struct CppType<StructureType, StructureType::eRenderPassBeginInfo>
26130   {
26131     using Type = RenderPassBeginInfo;
26132   };
26133 
26134   struct SubpassBeginInfo
26135   {
26136     static const bool allowDuplicate = false;
26137     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo;
26138 
26139 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo26140     VULKAN_HPP_CONSTEXPR SubpassBeginInfo(VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline) VULKAN_HPP_NOEXCEPT
26141     : contents( contents_ )
26142     {}
26143 
26144     VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26145 
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo26146     SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26147       : SubpassBeginInfo( *reinterpret_cast<SubpassBeginInfo const *>( &rhs ) )
26148     {}
26149 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26150 
26151     VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26152 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo26153     SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26154     {
26155       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassBeginInfo const *>( &rhs );
26156       return *this;
26157     }
26158 
setPNextVULKAN_HPP_NAMESPACE::SubpassBeginInfo26159     SubpassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26160     {
26161       pNext = pNext_;
26162       return *this;
26163     }
26164 
setContentsVULKAN_HPP_NAMESPACE::SubpassBeginInfo26165     SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT
26166     {
26167       contents = contents_;
26168       return *this;
26169     }
26170 
26171 
operator VkSubpassBeginInfo const&VULKAN_HPP_NAMESPACE::SubpassBeginInfo26172     operator VkSubpassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
26173     {
26174       return *reinterpret_cast<const VkSubpassBeginInfo*>( this );
26175     }
26176 
operator VkSubpassBeginInfo&VULKAN_HPP_NAMESPACE::SubpassBeginInfo26177     operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
26178     {
26179       return *reinterpret_cast<VkSubpassBeginInfo*>( this );
26180     }
26181 
26182 
26183 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26184     auto operator<=>( SubpassBeginInfo const& ) const = default;
26185 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassBeginInfo26186     bool operator==( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26187     {
26188       return ( sType == rhs.sType )
26189           && ( pNext == rhs.pNext )
26190           && ( contents == rhs.contents );
26191     }
26192 
operator !=VULKAN_HPP_NAMESPACE::SubpassBeginInfo26193     bool operator!=( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
26194     {
26195       return !operator==( rhs );
26196     }
26197 #endif
26198 
26199 
26200 
26201   public:
26202     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo;
26203     const void* pNext = {};
26204     VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline;
26205 
26206   };
26207   static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), "struct and wrapper have different size!" );
26208   static_assert( std::is_standard_layout<SubpassBeginInfo>::value, "struct wrapper is not a standard layout!" );
26209 
26210   template <>
26211   struct CppType<StructureType, StructureType::eSubpassBeginInfo>
26212   {
26213     using Type = SubpassBeginInfo;
26214   };
26215   using SubpassBeginInfoKHR = SubpassBeginInfo;
26216 
26217   class PipelineLayout
26218   {
26219   public:
26220     using CType = VkPipelineLayout;
26221 
26222     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout;
26223     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
26224 
26225   public:
PipelineLayout()26226     VULKAN_HPP_CONSTEXPR PipelineLayout() VULKAN_HPP_NOEXCEPT
26227       : m_pipelineLayout(VK_NULL_HANDLE)
26228     {}
26229 
PipelineLayout(std::nullptr_t)26230     VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26231       : m_pipelineLayout(VK_NULL_HANDLE)
26232     {}
26233 
PipelineLayout(VkPipelineLayout pipelineLayout)26234     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT
26235       : m_pipelineLayout( pipelineLayout )
26236     {}
26237 
26238 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineLayout pipelineLayout)26239     PipelineLayout & operator=(VkPipelineLayout pipelineLayout) VULKAN_HPP_NOEXCEPT
26240     {
26241       m_pipelineLayout = pipelineLayout;
26242       return *this;
26243     }
26244 #endif
26245 
operator =(std::nullptr_t)26246     PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26247     {
26248       m_pipelineLayout = VK_NULL_HANDLE;
26249       return *this;
26250     }
26251 
26252 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26253     auto operator<=>( PipelineLayout const& ) const = default;
26254 #else
operator ==(PipelineLayout const & rhs) const26255     bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
26256     {
26257       return m_pipelineLayout == rhs.m_pipelineLayout;
26258     }
26259 
operator !=(PipelineLayout const & rhs) const26260     bool operator!=(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
26261     {
26262       return m_pipelineLayout != rhs.m_pipelineLayout;
26263     }
26264 
operator <(PipelineLayout const & rhs) const26265     bool operator<(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
26266     {
26267       return m_pipelineLayout < rhs.m_pipelineLayout;
26268     }
26269 #endif
26270 
operator VkPipelineLayout() const26271     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT
26272     {
26273       return m_pipelineLayout;
26274     }
26275 
operator bool() const26276     explicit operator bool() const VULKAN_HPP_NOEXCEPT
26277     {
26278       return m_pipelineLayout != VK_NULL_HANDLE;
26279     }
26280 
operator !() const26281     bool operator!() const VULKAN_HPP_NOEXCEPT
26282     {
26283       return m_pipelineLayout == VK_NULL_HANDLE;
26284     }
26285 
26286   private:
26287     VkPipelineLayout m_pipelineLayout;
26288   };
26289   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" );
26290 
26291   template <>
26292   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineLayout>
26293   {
26294     using type = VULKAN_HPP_NAMESPACE::PipelineLayout;
26295   };
26296 
26297   template <>
26298   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout>
26299   {
26300     using Type = VULKAN_HPP_NAMESPACE::PipelineLayout;
26301   };
26302 
26303 
26304   template <>
26305   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout>
26306   {
26307     using Type = VULKAN_HPP_NAMESPACE::PipelineLayout;
26308   };
26309 
26310 
26311   template <>
26312   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PipelineLayout>
26313   {
26314     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
26315   };
26316 
26317   class DescriptorSet
26318   {
26319   public:
26320     using CType = VkDescriptorSet;
26321 
26322     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet;
26323     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
26324 
26325   public:
DescriptorSet()26326     VULKAN_HPP_CONSTEXPR DescriptorSet() VULKAN_HPP_NOEXCEPT
26327       : m_descriptorSet(VK_NULL_HANDLE)
26328     {}
26329 
DescriptorSet(std::nullptr_t)26330     VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26331       : m_descriptorSet(VK_NULL_HANDLE)
26332     {}
26333 
DescriptorSet(VkDescriptorSet descriptorSet)26334     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT
26335       : m_descriptorSet( descriptorSet )
26336     {}
26337 
26338 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSet descriptorSet)26339     DescriptorSet & operator=(VkDescriptorSet descriptorSet) VULKAN_HPP_NOEXCEPT
26340     {
26341       m_descriptorSet = descriptorSet;
26342       return *this;
26343     }
26344 #endif
26345 
operator =(std::nullptr_t)26346     DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26347     {
26348       m_descriptorSet = VK_NULL_HANDLE;
26349       return *this;
26350     }
26351 
26352 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26353     auto operator<=>( DescriptorSet const& ) const = default;
26354 #else
operator ==(DescriptorSet const & rhs) const26355     bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26356     {
26357       return m_descriptorSet == rhs.m_descriptorSet;
26358     }
26359 
operator !=(DescriptorSet const & rhs) const26360     bool operator!=(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26361     {
26362       return m_descriptorSet != rhs.m_descriptorSet;
26363     }
26364 
operator <(DescriptorSet const & rhs) const26365     bool operator<(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26366     {
26367       return m_descriptorSet < rhs.m_descriptorSet;
26368     }
26369 #endif
26370 
operator VkDescriptorSet() const26371     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT
26372     {
26373       return m_descriptorSet;
26374     }
26375 
operator bool() const26376     explicit operator bool() const VULKAN_HPP_NOEXCEPT
26377     {
26378       return m_descriptorSet != VK_NULL_HANDLE;
26379     }
26380 
operator !() const26381     bool operator!() const VULKAN_HPP_NOEXCEPT
26382     {
26383       return m_descriptorSet == VK_NULL_HANDLE;
26384     }
26385 
26386   private:
26387     VkDescriptorSet m_descriptorSet;
26388   };
26389   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" );
26390 
26391   template <>
26392   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSet>
26393   {
26394     using type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26395   };
26396 
26397   template <>
26398   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet>
26399   {
26400     using Type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26401   };
26402 
26403 
26404   template <>
26405   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet>
26406   {
26407     using Type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26408   };
26409 
26410 
26411   template <>
26412   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorSet>
26413   {
26414     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
26415   };
26416 
26417   class Pipeline
26418   {
26419   public:
26420     using CType = VkPipeline;
26421 
26422     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline;
26423     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
26424 
26425   public:
Pipeline()26426     VULKAN_HPP_CONSTEXPR Pipeline() VULKAN_HPP_NOEXCEPT
26427       : m_pipeline(VK_NULL_HANDLE)
26428     {}
26429 
Pipeline(std::nullptr_t)26430     VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26431       : m_pipeline(VK_NULL_HANDLE)
26432     {}
26433 
Pipeline(VkPipeline pipeline)26434     VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT
26435       : m_pipeline( pipeline )
26436     {}
26437 
26438 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipeline pipeline)26439     Pipeline & operator=(VkPipeline pipeline) VULKAN_HPP_NOEXCEPT
26440     {
26441       m_pipeline = pipeline;
26442       return *this;
26443     }
26444 #endif
26445 
operator =(std::nullptr_t)26446     Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26447     {
26448       m_pipeline = VK_NULL_HANDLE;
26449       return *this;
26450     }
26451 
26452 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26453     auto operator<=>( Pipeline const& ) const = default;
26454 #else
operator ==(Pipeline const & rhs) const26455     bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
26456     {
26457       return m_pipeline == rhs.m_pipeline;
26458     }
26459 
operator !=(Pipeline const & rhs) const26460     bool operator!=(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
26461     {
26462       return m_pipeline != rhs.m_pipeline;
26463     }
26464 
operator <(Pipeline const & rhs) const26465     bool operator<(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
26466     {
26467       return m_pipeline < rhs.m_pipeline;
26468     }
26469 #endif
26470 
operator VkPipeline() const26471     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT
26472     {
26473       return m_pipeline;
26474     }
26475 
operator bool() const26476     explicit operator bool() const VULKAN_HPP_NOEXCEPT
26477     {
26478       return m_pipeline != VK_NULL_HANDLE;
26479     }
26480 
operator !() const26481     bool operator!() const VULKAN_HPP_NOEXCEPT
26482     {
26483       return m_pipeline == VK_NULL_HANDLE;
26484     }
26485 
26486   private:
26487     VkPipeline m_pipeline;
26488   };
26489   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" );
26490 
26491   template <>
26492   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipeline>
26493   {
26494     using type = VULKAN_HPP_NAMESPACE::Pipeline;
26495   };
26496 
26497   template <>
26498   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipeline>
26499   {
26500     using Type = VULKAN_HPP_NAMESPACE::Pipeline;
26501   };
26502 
26503 
26504   template <>
26505   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline>
26506   {
26507     using Type = VULKAN_HPP_NAMESPACE::Pipeline;
26508   };
26509 
26510 
26511   template <>
26512   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Pipeline>
26513   {
26514     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
26515   };
26516 
26517   class ImageView
26518   {
26519   public:
26520     using CType = VkImageView;
26521 
26522     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView;
26523     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
26524 
26525   public:
ImageView()26526     VULKAN_HPP_CONSTEXPR ImageView() VULKAN_HPP_NOEXCEPT
26527       : m_imageView(VK_NULL_HANDLE)
26528     {}
26529 
ImageView(std::nullptr_t)26530     VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26531       : m_imageView(VK_NULL_HANDLE)
26532     {}
26533 
ImageView(VkImageView imageView)26534     VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT
26535       : m_imageView( imageView )
26536     {}
26537 
26538 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImageView imageView)26539     ImageView & operator=(VkImageView imageView) VULKAN_HPP_NOEXCEPT
26540     {
26541       m_imageView = imageView;
26542       return *this;
26543     }
26544 #endif
26545 
operator =(std::nullptr_t)26546     ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26547     {
26548       m_imageView = VK_NULL_HANDLE;
26549       return *this;
26550     }
26551 
26552 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26553     auto operator<=>( ImageView const& ) const = default;
26554 #else
operator ==(ImageView const & rhs) const26555     bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
26556     {
26557       return m_imageView == rhs.m_imageView;
26558     }
26559 
operator !=(ImageView const & rhs) const26560     bool operator!=(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
26561     {
26562       return m_imageView != rhs.m_imageView;
26563     }
26564 
operator <(ImageView const & rhs) const26565     bool operator<(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
26566     {
26567       return m_imageView < rhs.m_imageView;
26568     }
26569 #endif
26570 
operator VkImageView() const26571     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT
26572     {
26573       return m_imageView;
26574     }
26575 
operator bool() const26576     explicit operator bool() const VULKAN_HPP_NOEXCEPT
26577     {
26578       return m_imageView != VK_NULL_HANDLE;
26579     }
26580 
operator !() const26581     bool operator!() const VULKAN_HPP_NOEXCEPT
26582     {
26583       return m_imageView == VK_NULL_HANDLE;
26584     }
26585 
26586   private:
26587     VkImageView m_imageView;
26588   };
26589   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" );
26590 
26591   template <>
26592   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImageView>
26593   {
26594     using type = VULKAN_HPP_NAMESPACE::ImageView;
26595   };
26596 
26597   template <>
26598   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImageView>
26599   {
26600     using Type = VULKAN_HPP_NAMESPACE::ImageView;
26601   };
26602 
26603 
26604   template <>
26605   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView>
26606   {
26607     using Type = VULKAN_HPP_NAMESPACE::ImageView;
26608   };
26609 
26610 
26611   template <>
26612   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ImageView>
26613   {
26614     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
26615   };
26616 
26617   struct ImageBlit
26618   {
26619 
26620 
26621 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit26622     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
26623     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
26624     {}
26625 
26626     VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26627 
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit26628     ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
26629       : ImageBlit( *reinterpret_cast<ImageBlit const *>( &rhs ) )
26630     {}
26631 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26632 
26633     VULKAN_HPP_CONSTEXPR_14 ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26634 
operator =VULKAN_HPP_NAMESPACE::ImageBlit26635     ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
26636     {
26637       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit const *>( &rhs );
26638       return *this;
26639     }
26640 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit26641     ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
26642     {
26643       srcSubresource = srcSubresource_;
26644       return *this;
26645     }
26646 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit26647     ImageBlit & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
26648     {
26649       srcOffsets = srcOffsets_;
26650       return *this;
26651     }
26652 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit26653     ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
26654     {
26655       dstSubresource = dstSubresource_;
26656       return *this;
26657     }
26658 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit26659     ImageBlit & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
26660     {
26661       dstOffsets = dstOffsets_;
26662       return *this;
26663     }
26664 
26665 
operator VkImageBlit const&VULKAN_HPP_NAMESPACE::ImageBlit26666     operator VkImageBlit const&() const VULKAN_HPP_NOEXCEPT
26667     {
26668       return *reinterpret_cast<const VkImageBlit*>( this );
26669     }
26670 
operator VkImageBlit&VULKAN_HPP_NAMESPACE::ImageBlit26671     operator VkImageBlit &() VULKAN_HPP_NOEXCEPT
26672     {
26673       return *reinterpret_cast<VkImageBlit*>( this );
26674     }
26675 
26676 
26677 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26678     auto operator<=>( ImageBlit const& ) const = default;
26679 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit26680     bool operator==( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
26681     {
26682       return ( srcSubresource == rhs.srcSubresource )
26683           && ( srcOffsets == rhs.srcOffsets )
26684           && ( dstSubresource == rhs.dstSubresource )
26685           && ( dstOffsets == rhs.dstOffsets );
26686     }
26687 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit26688     bool operator!=( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
26689     {
26690       return !operator==( rhs );
26691     }
26692 #endif
26693 
26694 
26695 
26696   public:
26697     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
26698     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
26699     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
26700     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
26701 
26702   };
26703   static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" );
26704   static_assert( std::is_standard_layout<ImageBlit>::value, "struct wrapper is not a standard layout!" );
26705 
26706   struct ImageSubresourceRange
26707   {
26708 
26709 
26710 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange26711     VULKAN_HPP_CONSTEXPR ImageSubresourceRange(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t baseMipLevel_ = {}, uint32_t levelCount_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
26712     : aspectMask( aspectMask_ ), baseMipLevel( baseMipLevel_ ), levelCount( levelCount_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
26713     {}
26714 
26715     VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26716 
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange26717     ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
26718       : ImageSubresourceRange( *reinterpret_cast<ImageSubresourceRange const *>( &rhs ) )
26719     {}
26720 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26721 
26722     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26723 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange26724     ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
26725     {
26726       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceRange const *>( &rhs );
26727       return *this;
26728     }
26729 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceRange26730     ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
26731     {
26732       aspectMask = aspectMask_;
26733       return *this;
26734     }
26735 
setBaseMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceRange26736     ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT
26737     {
26738       baseMipLevel = baseMipLevel_;
26739       return *this;
26740     }
26741 
setLevelCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange26742     ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT
26743     {
26744       levelCount = levelCount_;
26745       return *this;
26746     }
26747 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceRange26748     ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
26749     {
26750       baseArrayLayer = baseArrayLayer_;
26751       return *this;
26752     }
26753 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange26754     ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
26755     {
26756       layerCount = layerCount_;
26757       return *this;
26758     }
26759 
26760 
operator VkImageSubresourceRange const&VULKAN_HPP_NAMESPACE::ImageSubresourceRange26761     operator VkImageSubresourceRange const&() const VULKAN_HPP_NOEXCEPT
26762     {
26763       return *reinterpret_cast<const VkImageSubresourceRange*>( this );
26764     }
26765 
operator VkImageSubresourceRange&VULKAN_HPP_NAMESPACE::ImageSubresourceRange26766     operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
26767     {
26768       return *reinterpret_cast<VkImageSubresourceRange*>( this );
26769     }
26770 
26771 
26772 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26773     auto operator<=>( ImageSubresourceRange const& ) const = default;
26774 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceRange26775     bool operator==( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
26776     {
26777       return ( aspectMask == rhs.aspectMask )
26778           && ( baseMipLevel == rhs.baseMipLevel )
26779           && ( levelCount == rhs.levelCount )
26780           && ( baseArrayLayer == rhs.baseArrayLayer )
26781           && ( layerCount == rhs.layerCount );
26782     }
26783 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceRange26784     bool operator!=( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
26785     {
26786       return !operator==( rhs );
26787     }
26788 #endif
26789 
26790 
26791 
26792   public:
26793     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
26794     uint32_t baseMipLevel = {};
26795     uint32_t levelCount = {};
26796     uint32_t baseArrayLayer = {};
26797     uint32_t layerCount = {};
26798 
26799   };
26800   static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" );
26801   static_assert( std::is_standard_layout<ImageSubresourceRange>::value, "struct wrapper is not a standard layout!" );
26802 
26803   struct CopyAccelerationStructureInfoKHR
26804   {
26805     static const bool allowDuplicate = false;
26806     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR;
26807 
26808 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26809     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
26810     : src( src_ ), dst( dst_ ), mode( mode_ )
26811     {}
26812 
26813     VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26814 
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26815     CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26816       : CopyAccelerationStructureInfoKHR( *reinterpret_cast<CopyAccelerationStructureInfoKHR const *>( &rhs ) )
26817     {}
26818 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26819 
26820     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26821 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26822     CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26823     {
26824       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const *>( &rhs );
26825       return *this;
26826     }
26827 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26828     CopyAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26829     {
26830       pNext = pNext_;
26831       return *this;
26832     }
26833 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26834     CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
26835     {
26836       src = src_;
26837       return *this;
26838     }
26839 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26840     CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
26841     {
26842       dst = dst_;
26843       return *this;
26844     }
26845 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26846     CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
26847     {
26848       mode = mode_;
26849       return *this;
26850     }
26851 
26852 
operator VkCopyAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26853     operator VkCopyAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
26854     {
26855       return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( this );
26856     }
26857 
operator VkCopyAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26858     operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
26859     {
26860       return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR*>( this );
26861     }
26862 
26863 
26864 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26865     auto operator<=>( CopyAccelerationStructureInfoKHR const& ) const = default;
26866 #else
operator ==VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26867     bool operator==( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26868     {
26869       return ( sType == rhs.sType )
26870           && ( pNext == rhs.pNext )
26871           && ( src == rhs.src )
26872           && ( dst == rhs.dst )
26873           && ( mode == rhs.mode );
26874     }
26875 
operator !=VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR26876     bool operator!=( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26877     {
26878       return !operator==( rhs );
26879     }
26880 #endif
26881 
26882 
26883 
26884   public:
26885     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR;
26886     const void* pNext = {};
26887     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
26888     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
26889     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
26890 
26891   };
26892   static_assert( sizeof( CopyAccelerationStructureInfoKHR ) == sizeof( VkCopyAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
26893   static_assert( std::is_standard_layout<CopyAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
26894 
26895   template <>
26896   struct CppType<StructureType, StructureType::eCopyAccelerationStructureInfoKHR>
26897   {
26898     using Type = CopyAccelerationStructureInfoKHR;
26899   };
26900 
26901   struct CopyAccelerationStructureToMemoryInfoKHR
26902   {
26903     static const bool allowDuplicate = false;
26904     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
26905 
26906 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26907     CopyAccelerationStructureToMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
26908     : src( src_ ), dst( dst_ ), mode( mode_ )
26909     {}
26910 
26911     CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26912 
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26913     CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26914       : CopyAccelerationStructureToMemoryInfoKHR( *reinterpret_cast<CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs ) )
26915     {}
26916 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26917 
26918     CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26919 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26920     CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26921     {
26922       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs );
26923       return *this;
26924     }
26925 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26926     CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26927     {
26928       pNext = pNext_;
26929       return *this;
26930     }
26931 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26932     CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
26933     {
26934       src = src_;
26935       return *this;
26936     }
26937 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26938     CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
26939     {
26940       dst = dst_;
26941       return *this;
26942     }
26943 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26944     CopyAccelerationStructureToMemoryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
26945     {
26946       mode = mode_;
26947       return *this;
26948     }
26949 
26950 
operator VkCopyAccelerationStructureToMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26951     operator VkCopyAccelerationStructureToMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
26952     {
26953       return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
26954     }
26955 
operator VkCopyAccelerationStructureToMemoryInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26956     operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
26957     {
26958       return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
26959     }
26960 
26961 
26962 
26963 
26964   public:
26965     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
26966     const void* pNext = {};
26967     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
26968     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
26969     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
26970 
26971   };
26972   static_assert( sizeof( CopyAccelerationStructureToMemoryInfoKHR ) == sizeof( VkCopyAccelerationStructureToMemoryInfoKHR ), "struct and wrapper have different size!" );
26973   static_assert( std::is_standard_layout<CopyAccelerationStructureToMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
26974 
26975   template <>
26976   struct CppType<StructureType, StructureType::eCopyAccelerationStructureToMemoryInfoKHR>
26977   {
26978     using Type = CopyAccelerationStructureToMemoryInfoKHR;
26979   };
26980 
26981   struct CopyBufferInfo2KHR
26982   {
26983     static const bool allowDuplicate = false;
26984     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2KHR;
26985 
26986 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26987     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
26988     : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26989     {}
26990 
26991     VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26992 
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26993     CopyBufferInfo2KHR( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26994       : CopyBufferInfo2KHR( *reinterpret_cast<CopyBufferInfo2KHR const *>( &rhs ) )
26995     {}
26996 
26997 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26998     CopyBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ )
26999     : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
27000     {}
27001 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27002 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27003 
27004     VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2KHR & operator=( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27005 
operator =VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27006     CopyBufferInfo2KHR & operator=( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27007     {
27008       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR const *>( &rhs );
27009       return *this;
27010     }
27011 
setPNextVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27012     CopyBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27013     {
27014       pNext = pNext_;
27015       return *this;
27016     }
27017 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27018     CopyBufferInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
27019     {
27020       srcBuffer = srcBuffer_;
27021       return *this;
27022     }
27023 
setDstBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27024     CopyBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
27025     {
27026       dstBuffer = dstBuffer_;
27027       return *this;
27028     }
27029 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27030     CopyBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
27031     {
27032       regionCount = regionCount_;
27033       return *this;
27034     }
27035 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27036     CopyBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
27037     {
27038       pRegions = pRegions_;
27039       return *this;
27040     }
27041 
27042 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27043     CopyBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
27044     {
27045       regionCount = static_cast<uint32_t>( regions_.size() );
27046       pRegions = regions_.data();
27047       return *this;
27048     }
27049 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27050 
27051 
operator VkCopyBufferInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27052     operator VkCopyBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
27053     {
27054       return *reinterpret_cast<const VkCopyBufferInfo2KHR*>( this );
27055     }
27056 
operator VkCopyBufferInfo2KHR&VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27057     operator VkCopyBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT
27058     {
27059       return *reinterpret_cast<VkCopyBufferInfo2KHR*>( this );
27060     }
27061 
27062 
27063 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27064     auto operator<=>( CopyBufferInfo2KHR const& ) const = default;
27065 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27066     bool operator==( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27067     {
27068       return ( sType == rhs.sType )
27069           && ( pNext == rhs.pNext )
27070           && ( srcBuffer == rhs.srcBuffer )
27071           && ( dstBuffer == rhs.dstBuffer )
27072           && ( regionCount == rhs.regionCount )
27073           && ( pRegions == rhs.pRegions );
27074     }
27075 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR27076     bool operator!=( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27077     {
27078       return !operator==( rhs );
27079     }
27080 #endif
27081 
27082 
27083 
27084   public:
27085     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2KHR;
27086     const void* pNext = {};
27087     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
27088     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
27089     uint32_t regionCount = {};
27090     const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions = {};
27091 
27092   };
27093   static_assert( sizeof( CopyBufferInfo2KHR ) == sizeof( VkCopyBufferInfo2KHR ), "struct and wrapper have different size!" );
27094   static_assert( std::is_standard_layout<CopyBufferInfo2KHR>::value, "struct wrapper is not a standard layout!" );
27095 
27096   template <>
27097   struct CppType<StructureType, StructureType::eCopyBufferInfo2KHR>
27098   {
27099     using Type = CopyBufferInfo2KHR;
27100   };
27101 
27102   struct CopyBufferToImageInfo2KHR
27103   {
27104     static const bool allowDuplicate = false;
27105     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2KHR;
27106 
27107 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27108     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
27109     : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
27110     {}
27111 
27112     VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27113 
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27114     CopyBufferToImageInfo2KHR( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27115       : CopyBufferToImageInfo2KHR( *reinterpret_cast<CopyBufferToImageInfo2KHR const *>( &rhs ) )
27116     {}
27117 
27118 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27119     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_ )
27120     : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
27121     {}
27122 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27123 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27124 
27125     VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2KHR & operator=( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27126 
operator =VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27127     CopyBufferToImageInfo2KHR & operator=( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27128     {
27129       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR const *>( &rhs );
27130       return *this;
27131     }
27132 
setPNextVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27133     CopyBufferToImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27134     {
27135       pNext = pNext_;
27136       return *this;
27137     }
27138 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27139     CopyBufferToImageInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
27140     {
27141       srcBuffer = srcBuffer_;
27142       return *this;
27143     }
27144 
setDstImageVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27145     CopyBufferToImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
27146     {
27147       dstImage = dstImage_;
27148       return *this;
27149     }
27150 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27151     CopyBufferToImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
27152     {
27153       dstImageLayout = dstImageLayout_;
27154       return *this;
27155     }
27156 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27157     CopyBufferToImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
27158     {
27159       regionCount = regionCount_;
27160       return *this;
27161     }
27162 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27163     CopyBufferToImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
27164     {
27165       pRegions = pRegions_;
27166       return *this;
27167     }
27168 
27169 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27170     CopyBufferToImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
27171     {
27172       regionCount = static_cast<uint32_t>( regions_.size() );
27173       pRegions = regions_.data();
27174       return *this;
27175     }
27176 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27177 
27178 
operator VkCopyBufferToImageInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27179     operator VkCopyBufferToImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
27180     {
27181       return *reinterpret_cast<const VkCopyBufferToImageInfo2KHR*>( this );
27182     }
27183 
operator VkCopyBufferToImageInfo2KHR&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27184     operator VkCopyBufferToImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
27185     {
27186       return *reinterpret_cast<VkCopyBufferToImageInfo2KHR*>( this );
27187     }
27188 
27189 
27190 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27191     auto operator<=>( CopyBufferToImageInfo2KHR const& ) const = default;
27192 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27193     bool operator==( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27194     {
27195       return ( sType == rhs.sType )
27196           && ( pNext == rhs.pNext )
27197           && ( srcBuffer == rhs.srcBuffer )
27198           && ( dstImage == rhs.dstImage )
27199           && ( dstImageLayout == rhs.dstImageLayout )
27200           && ( regionCount == rhs.regionCount )
27201           && ( pRegions == rhs.pRegions );
27202     }
27203 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR27204     bool operator!=( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27205     {
27206       return !operator==( rhs );
27207     }
27208 #endif
27209 
27210 
27211 
27212   public:
27213     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2KHR;
27214     const void* pNext = {};
27215     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
27216     VULKAN_HPP_NAMESPACE::Image dstImage = {};
27217     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
27218     uint32_t regionCount = {};
27219     const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {};
27220 
27221   };
27222   static_assert( sizeof( CopyBufferToImageInfo2KHR ) == sizeof( VkCopyBufferToImageInfo2KHR ), "struct and wrapper have different size!" );
27223   static_assert( std::is_standard_layout<CopyBufferToImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
27224 
27225   template <>
27226   struct CppType<StructureType, StructureType::eCopyBufferToImageInfo2KHR>
27227   {
27228     using Type = CopyBufferToImageInfo2KHR;
27229   };
27230 
27231   struct ImageCopy
27232   {
27233 
27234 
27235 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy27236     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
27237     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
27238     {}
27239 
27240     VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27241 
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy27242     ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
27243       : ImageCopy( *reinterpret_cast<ImageCopy const *>( &rhs ) )
27244     {}
27245 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27246 
27247     VULKAN_HPP_CONSTEXPR_14 ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27248 
operator =VULKAN_HPP_NAMESPACE::ImageCopy27249     ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
27250     {
27251       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy const *>( &rhs );
27252       return *this;
27253     }
27254 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy27255     ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
27256     {
27257       srcSubresource = srcSubresource_;
27258       return *this;
27259     }
27260 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy27261     ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
27262     {
27263       srcOffset = srcOffset_;
27264       return *this;
27265     }
27266 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy27267     ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
27268     {
27269       dstSubresource = dstSubresource_;
27270       return *this;
27271     }
27272 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy27273     ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
27274     {
27275       dstOffset = dstOffset_;
27276       return *this;
27277     }
27278 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy27279     ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
27280     {
27281       extent = extent_;
27282       return *this;
27283     }
27284 
27285 
operator VkImageCopy const&VULKAN_HPP_NAMESPACE::ImageCopy27286     operator VkImageCopy const&() const VULKAN_HPP_NOEXCEPT
27287     {
27288       return *reinterpret_cast<const VkImageCopy*>( this );
27289     }
27290 
operator VkImageCopy&VULKAN_HPP_NAMESPACE::ImageCopy27291     operator VkImageCopy &() VULKAN_HPP_NOEXCEPT
27292     {
27293       return *reinterpret_cast<VkImageCopy*>( this );
27294     }
27295 
27296 
27297 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27298     auto operator<=>( ImageCopy const& ) const = default;
27299 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy27300     bool operator==( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
27301     {
27302       return ( srcSubresource == rhs.srcSubresource )
27303           && ( srcOffset == rhs.srcOffset )
27304           && ( dstSubresource == rhs.dstSubresource )
27305           && ( dstOffset == rhs.dstOffset )
27306           && ( extent == rhs.extent );
27307     }
27308 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy27309     bool operator!=( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
27310     {
27311       return !operator==( rhs );
27312     }
27313 #endif
27314 
27315 
27316 
27317   public:
27318     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
27319     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
27320     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
27321     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
27322     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
27323 
27324   };
27325   static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" );
27326   static_assert( std::is_standard_layout<ImageCopy>::value, "struct wrapper is not a standard layout!" );
27327 
27328   struct ImageCopy2KHR
27329   {
27330     static const bool allowDuplicate = false;
27331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2KHR;
27332 
27333 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopy2KHRVULKAN_HPP_NAMESPACE::ImageCopy2KHR27334     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
27335     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
27336     {}
27337 
27338     VULKAN_HPP_CONSTEXPR ImageCopy2KHR( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27339 
ImageCopy2KHRVULKAN_HPP_NAMESPACE::ImageCopy2KHR27340     ImageCopy2KHR( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27341       : ImageCopy2KHR( *reinterpret_cast<ImageCopy2KHR const *>( &rhs ) )
27342     {}
27343 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27344 
27345     VULKAN_HPP_CONSTEXPR_14 ImageCopy2KHR & operator=( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27346 
operator =VULKAN_HPP_NAMESPACE::ImageCopy2KHR27347     ImageCopy2KHR & operator=( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27348     {
27349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy2KHR const *>( &rhs );
27350       return *this;
27351     }
27352 
setPNextVULKAN_HPP_NAMESPACE::ImageCopy2KHR27353     ImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27354     {
27355       pNext = pNext_;
27356       return *this;
27357     }
27358 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy2KHR27359     ImageCopy2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
27360     {
27361       srcSubresource = srcSubresource_;
27362       return *this;
27363     }
27364 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy2KHR27365     ImageCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
27366     {
27367       srcOffset = srcOffset_;
27368       return *this;
27369     }
27370 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy2KHR27371     ImageCopy2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
27372     {
27373       dstSubresource = dstSubresource_;
27374       return *this;
27375     }
27376 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy2KHR27377     ImageCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
27378     {
27379       dstOffset = dstOffset_;
27380       return *this;
27381     }
27382 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy2KHR27383     ImageCopy2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
27384     {
27385       extent = extent_;
27386       return *this;
27387     }
27388 
27389 
operator VkImageCopy2KHR const&VULKAN_HPP_NAMESPACE::ImageCopy2KHR27390     operator VkImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
27391     {
27392       return *reinterpret_cast<const VkImageCopy2KHR*>( this );
27393     }
27394 
operator VkImageCopy2KHR&VULKAN_HPP_NAMESPACE::ImageCopy2KHR27395     operator VkImageCopy2KHR &() VULKAN_HPP_NOEXCEPT
27396     {
27397       return *reinterpret_cast<VkImageCopy2KHR*>( this );
27398     }
27399 
27400 
27401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27402     auto operator<=>( ImageCopy2KHR const& ) const = default;
27403 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy2KHR27404     bool operator==( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27405     {
27406       return ( sType == rhs.sType )
27407           && ( pNext == rhs.pNext )
27408           && ( srcSubresource == rhs.srcSubresource )
27409           && ( srcOffset == rhs.srcOffset )
27410           && ( dstSubresource == rhs.dstSubresource )
27411           && ( dstOffset == rhs.dstOffset )
27412           && ( extent == rhs.extent );
27413     }
27414 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy2KHR27415     bool operator!=( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27416     {
27417       return !operator==( rhs );
27418     }
27419 #endif
27420 
27421 
27422 
27423   public:
27424     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2KHR;
27425     const void* pNext = {};
27426     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
27427     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
27428     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
27429     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
27430     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
27431 
27432   };
27433   static_assert( sizeof( ImageCopy2KHR ) == sizeof( VkImageCopy2KHR ), "struct and wrapper have different size!" );
27434   static_assert( std::is_standard_layout<ImageCopy2KHR>::value, "struct wrapper is not a standard layout!" );
27435 
27436   template <>
27437   struct CppType<StructureType, StructureType::eImageCopy2KHR>
27438   {
27439     using Type = ImageCopy2KHR;
27440   };
27441 
27442   struct CopyImageInfo2KHR
27443   {
27444     static const bool allowDuplicate = false;
27445     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2KHR;
27446 
27447 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27448     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
27449     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
27450     {}
27451 
27452     VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27453 
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27454     CopyImageInfo2KHR( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27455       : CopyImageInfo2KHR( *reinterpret_cast<CopyImageInfo2KHR const *>( &rhs ) )
27456     {}
27457 
27458 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27459     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_ )
27460     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
27461     {}
27462 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27463 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27464 
27465     VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2KHR & operator=( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27466 
operator =VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27467     CopyImageInfo2KHR & operator=( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27468     {
27469       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR const *>( &rhs );
27470       return *this;
27471     }
27472 
setPNextVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27473     CopyImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27474     {
27475       pNext = pNext_;
27476       return *this;
27477     }
27478 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27479     CopyImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
27480     {
27481       srcImage = srcImage_;
27482       return *this;
27483     }
27484 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27485     CopyImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
27486     {
27487       srcImageLayout = srcImageLayout_;
27488       return *this;
27489     }
27490 
setDstImageVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27491     CopyImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
27492     {
27493       dstImage = dstImage_;
27494       return *this;
27495     }
27496 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27497     CopyImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
27498     {
27499       dstImageLayout = dstImageLayout_;
27500       return *this;
27501     }
27502 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27503     CopyImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
27504     {
27505       regionCount = regionCount_;
27506       return *this;
27507     }
27508 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27509     CopyImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
27510     {
27511       pRegions = pRegions_;
27512       return *this;
27513     }
27514 
27515 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27516     CopyImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
27517     {
27518       regionCount = static_cast<uint32_t>( regions_.size() );
27519       pRegions = regions_.data();
27520       return *this;
27521     }
27522 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27523 
27524 
operator VkCopyImageInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27525     operator VkCopyImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
27526     {
27527       return *reinterpret_cast<const VkCopyImageInfo2KHR*>( this );
27528     }
27529 
operator VkCopyImageInfo2KHR&VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27530     operator VkCopyImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
27531     {
27532       return *reinterpret_cast<VkCopyImageInfo2KHR*>( this );
27533     }
27534 
27535 
27536 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27537     auto operator<=>( CopyImageInfo2KHR const& ) const = default;
27538 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27539     bool operator==( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27540     {
27541       return ( sType == rhs.sType )
27542           && ( pNext == rhs.pNext )
27543           && ( srcImage == rhs.srcImage )
27544           && ( srcImageLayout == rhs.srcImageLayout )
27545           && ( dstImage == rhs.dstImage )
27546           && ( dstImageLayout == rhs.dstImageLayout )
27547           && ( regionCount == rhs.regionCount )
27548           && ( pRegions == rhs.pRegions );
27549     }
27550 
operator !=VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR27551     bool operator!=( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27552     {
27553       return !operator==( rhs );
27554     }
27555 #endif
27556 
27557 
27558 
27559   public:
27560     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2KHR;
27561     const void* pNext = {};
27562     VULKAN_HPP_NAMESPACE::Image srcImage = {};
27563     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
27564     VULKAN_HPP_NAMESPACE::Image dstImage = {};
27565     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
27566     uint32_t regionCount = {};
27567     const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions = {};
27568 
27569   };
27570   static_assert( sizeof( CopyImageInfo2KHR ) == sizeof( VkCopyImageInfo2KHR ), "struct and wrapper have different size!" );
27571   static_assert( std::is_standard_layout<CopyImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
27572 
27573   template <>
27574   struct CppType<StructureType, StructureType::eCopyImageInfo2KHR>
27575   {
27576     using Type = CopyImageInfo2KHR;
27577   };
27578 
27579   struct CopyImageToBufferInfo2KHR
27580   {
27581     static const bool allowDuplicate = false;
27582     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2KHR;
27583 
27584 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27585     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
27586     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
27587     {}
27588 
27589     VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27590 
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27591     CopyImageToBufferInfo2KHR( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27592       : CopyImageToBufferInfo2KHR( *reinterpret_cast<CopyImageToBufferInfo2KHR const *>( &rhs ) )
27593     {}
27594 
27595 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27596     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_ )
27597     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
27598     {}
27599 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27600 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27601 
27602     VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2KHR & operator=( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27603 
operator =VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27604     CopyImageToBufferInfo2KHR & operator=( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27605     {
27606       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR const *>( &rhs );
27607       return *this;
27608     }
27609 
setPNextVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27610     CopyImageToBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27611     {
27612       pNext = pNext_;
27613       return *this;
27614     }
27615 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27616     CopyImageToBufferInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
27617     {
27618       srcImage = srcImage_;
27619       return *this;
27620     }
27621 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27622     CopyImageToBufferInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
27623     {
27624       srcImageLayout = srcImageLayout_;
27625       return *this;
27626     }
27627 
setDstBufferVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27628     CopyImageToBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
27629     {
27630       dstBuffer = dstBuffer_;
27631       return *this;
27632     }
27633 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27634     CopyImageToBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
27635     {
27636       regionCount = regionCount_;
27637       return *this;
27638     }
27639 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27640     CopyImageToBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
27641     {
27642       pRegions = pRegions_;
27643       return *this;
27644     }
27645 
27646 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27647     CopyImageToBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
27648     {
27649       regionCount = static_cast<uint32_t>( regions_.size() );
27650       pRegions = regions_.data();
27651       return *this;
27652     }
27653 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27654 
27655 
operator VkCopyImageToBufferInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27656     operator VkCopyImageToBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
27657     {
27658       return *reinterpret_cast<const VkCopyImageToBufferInfo2KHR*>( this );
27659     }
27660 
operator VkCopyImageToBufferInfo2KHR&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27661     operator VkCopyImageToBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT
27662     {
27663       return *reinterpret_cast<VkCopyImageToBufferInfo2KHR*>( this );
27664     }
27665 
27666 
27667 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27668     auto operator<=>( CopyImageToBufferInfo2KHR const& ) const = default;
27669 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27670     bool operator==( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27671     {
27672       return ( sType == rhs.sType )
27673           && ( pNext == rhs.pNext )
27674           && ( srcImage == rhs.srcImage )
27675           && ( srcImageLayout == rhs.srcImageLayout )
27676           && ( dstBuffer == rhs.dstBuffer )
27677           && ( regionCount == rhs.regionCount )
27678           && ( pRegions == rhs.pRegions );
27679     }
27680 
operator !=VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27681     bool operator!=( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27682     {
27683       return !operator==( rhs );
27684     }
27685 #endif
27686 
27687 
27688 
27689   public:
27690     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2KHR;
27691     const void* pNext = {};
27692     VULKAN_HPP_NAMESPACE::Image srcImage = {};
27693     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
27694     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
27695     uint32_t regionCount = {};
27696     const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {};
27697 
27698   };
27699   static_assert( sizeof( CopyImageToBufferInfo2KHR ) == sizeof( VkCopyImageToBufferInfo2KHR ), "struct and wrapper have different size!" );
27700   static_assert( std::is_standard_layout<CopyImageToBufferInfo2KHR>::value, "struct wrapper is not a standard layout!" );
27701 
27702   template <>
27703   struct CppType<StructureType, StructureType::eCopyImageToBufferInfo2KHR>
27704   {
27705     using Type = CopyImageToBufferInfo2KHR;
27706   };
27707 
27708   struct CopyMemoryToAccelerationStructureInfoKHR
27709   {
27710     static const bool allowDuplicate = false;
27711     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
27712 
27713 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27714     CopyMemoryToAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
27715     : src( src_ ), dst( dst_ ), mode( mode_ )
27716     {}
27717 
27718     CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27719 
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27720     CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27721       : CopyMemoryToAccelerationStructureInfoKHR( *reinterpret_cast<CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs ) )
27722     {}
27723 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27724 
27725     CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27726 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27727     CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27728     {
27729       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs );
27730       return *this;
27731     }
27732 
setPNextVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27733     CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27734     {
27735       pNext = pNext_;
27736       return *this;
27737     }
27738 
setSrcVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27739     CopyMemoryToAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
27740     {
27741       src = src_;
27742       return *this;
27743     }
27744 
setDstVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27745     CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
27746     {
27747       dst = dst_;
27748       return *this;
27749     }
27750 
setModeVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27751     CopyMemoryToAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
27752     {
27753       mode = mode_;
27754       return *this;
27755     }
27756 
27757 
operator VkCopyMemoryToAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27758     operator VkCopyMemoryToAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
27759     {
27760       return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
27761     }
27762 
operator VkCopyMemoryToAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27763     operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
27764     {
27765       return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
27766     }
27767 
27768 
27769 
27770 
27771   public:
27772     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
27773     const void* pNext = {};
27774     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
27775     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
27776     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
27777 
27778   };
27779   static_assert( sizeof( CopyMemoryToAccelerationStructureInfoKHR ) == sizeof( VkCopyMemoryToAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
27780   static_assert( std::is_standard_layout<CopyMemoryToAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
27781 
27782   template <>
27783   struct CppType<StructureType, StructureType::eCopyMemoryToAccelerationStructureInfoKHR>
27784   {
27785     using Type = CopyMemoryToAccelerationStructureInfoKHR;
27786   };
27787 
27788   struct DebugMarkerMarkerInfoEXT
27789   {
27790     static const bool allowDuplicate = false;
27791     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT;
27792 
27793 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27794     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT(const char* pMarkerName_ = {}, std::array<float,4> const& color_ = {}) VULKAN_HPP_NOEXCEPT
27795     : pMarkerName( pMarkerName_ ), color( color_ )
27796     {}
27797 
27798     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27799 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27800     DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27801       : DebugMarkerMarkerInfoEXT( *reinterpret_cast<DebugMarkerMarkerInfoEXT const *>( &rhs ) )
27802     {}
27803 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27804 
27805     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27806 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27807     DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27808     {
27809       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const *>( &rhs );
27810       return *this;
27811     }
27812 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27813     DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27814     {
27815       pNext = pNext_;
27816       return *this;
27817     }
27818 
setPMarkerNameVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27819     DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ ) VULKAN_HPP_NOEXCEPT
27820     {
27821       pMarkerName = pMarkerName_;
27822       return *this;
27823     }
27824 
setColorVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27825     DebugMarkerMarkerInfoEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
27826     {
27827       color = color_;
27828       return *this;
27829     }
27830 
27831 
operator VkDebugMarkerMarkerInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27832     operator VkDebugMarkerMarkerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27833     {
27834       return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( this );
27835     }
27836 
operator VkDebugMarkerMarkerInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27837     operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
27838     {
27839       return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>( this );
27840     }
27841 
27842 
27843 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27844     auto operator<=>( DebugMarkerMarkerInfoEXT const& ) const = default;
27845 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27846     bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27847     {
27848       return ( sType == rhs.sType )
27849           && ( pNext == rhs.pNext )
27850           && ( pMarkerName == rhs.pMarkerName )
27851           && ( color == rhs.color );
27852     }
27853 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27854     bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27855     {
27856       return !operator==( rhs );
27857     }
27858 #endif
27859 
27860 
27861 
27862   public:
27863     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
27864     const void* pNext = {};
27865     const char* pMarkerName = {};
27866     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
27867 
27868   };
27869   static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" );
27870   static_assert( std::is_standard_layout<DebugMarkerMarkerInfoEXT>::value, "struct wrapper is not a standard layout!" );
27871 
27872   template <>
27873   struct CppType<StructureType, StructureType::eDebugMarkerMarkerInfoEXT>
27874   {
27875     using Type = DebugMarkerMarkerInfoEXT;
27876   };
27877 
27878   struct SubpassEndInfo
27879   {
27880     static const bool allowDuplicate = false;
27881     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
27882 
27883 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo27884     VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT
27885 
27886     {}
27887 
27888     VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27889 
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo27890     SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27891       : SubpassEndInfo( *reinterpret_cast<SubpassEndInfo const *>( &rhs ) )
27892     {}
27893 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27894 
27895     VULKAN_HPP_CONSTEXPR_14 SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27896 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo27897     SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27898     {
27899       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassEndInfo const *>( &rhs );
27900       return *this;
27901     }
27902 
setPNextVULKAN_HPP_NAMESPACE::SubpassEndInfo27903     SubpassEndInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27904     {
27905       pNext = pNext_;
27906       return *this;
27907     }
27908 
27909 
operator VkSubpassEndInfo const&VULKAN_HPP_NAMESPACE::SubpassEndInfo27910     operator VkSubpassEndInfo const&() const VULKAN_HPP_NOEXCEPT
27911     {
27912       return *reinterpret_cast<const VkSubpassEndInfo*>( this );
27913     }
27914 
operator VkSubpassEndInfo&VULKAN_HPP_NAMESPACE::SubpassEndInfo27915     operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
27916     {
27917       return *reinterpret_cast<VkSubpassEndInfo*>( this );
27918     }
27919 
27920 
27921 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27922     auto operator<=>( SubpassEndInfo const& ) const = default;
27923 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassEndInfo27924     bool operator==( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27925     {
27926       return ( sType == rhs.sType )
27927           && ( pNext == rhs.pNext );
27928     }
27929 
operator !=VULKAN_HPP_NAMESPACE::SubpassEndInfo27930     bool operator!=( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
27931     {
27932       return !operator==( rhs );
27933     }
27934 #endif
27935 
27936 
27937 
27938   public:
27939     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo;
27940     const void* pNext = {};
27941 
27942   };
27943   static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" );
27944   static_assert( std::is_standard_layout<SubpassEndInfo>::value, "struct wrapper is not a standard layout!" );
27945 
27946   template <>
27947   struct CppType<StructureType, StructureType::eSubpassEndInfo>
27948   {
27949     using Type = SubpassEndInfo;
27950   };
27951   using SubpassEndInfoKHR = SubpassEndInfo;
27952 
27953   class IndirectCommandsLayoutNV
27954   {
27955   public:
27956     using CType = VkIndirectCommandsLayoutNV;
27957 
27958     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV;
27959     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
27960 
27961   public:
IndirectCommandsLayoutNV()27962     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() VULKAN_HPP_NOEXCEPT
27963       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
27964     {}
27965 
IndirectCommandsLayoutNV(std::nullptr_t)27966     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
27967       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
27968     {}
27969 
IndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)27970     VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT
27971       : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV )
27972     {}
27973 
27974 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)27975     IndirectCommandsLayoutNV & operator=(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV) VULKAN_HPP_NOEXCEPT
27976     {
27977       m_indirectCommandsLayoutNV = indirectCommandsLayoutNV;
27978       return *this;
27979     }
27980 #endif
27981 
operator =(std::nullptr_t)27982     IndirectCommandsLayoutNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
27983     {
27984       m_indirectCommandsLayoutNV = VK_NULL_HANDLE;
27985       return *this;
27986     }
27987 
27988 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27989     auto operator<=>( IndirectCommandsLayoutNV const& ) const = default;
27990 #else
operator ==(IndirectCommandsLayoutNV const & rhs) const27991     bool operator==( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
27992     {
27993       return m_indirectCommandsLayoutNV == rhs.m_indirectCommandsLayoutNV;
27994     }
27995 
operator !=(IndirectCommandsLayoutNV const & rhs) const27996     bool operator!=(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
27997     {
27998       return m_indirectCommandsLayoutNV != rhs.m_indirectCommandsLayoutNV;
27999     }
28000 
operator <(IndirectCommandsLayoutNV const & rhs) const28001     bool operator<(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
28002     {
28003       return m_indirectCommandsLayoutNV < rhs.m_indirectCommandsLayoutNV;
28004     }
28005 #endif
28006 
operator VkIndirectCommandsLayoutNV() const28007     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT
28008     {
28009       return m_indirectCommandsLayoutNV;
28010     }
28011 
operator bool() const28012     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28013     {
28014       return m_indirectCommandsLayoutNV != VK_NULL_HANDLE;
28015     }
28016 
operator !() const28017     bool operator!() const VULKAN_HPP_NOEXCEPT
28018     {
28019       return m_indirectCommandsLayoutNV == VK_NULL_HANDLE;
28020     }
28021 
28022   private:
28023     VkIndirectCommandsLayoutNV m_indirectCommandsLayoutNV;
28024   };
28025   static_assert( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ), "handle and wrapper have different size!" );
28026 
28027   template <>
28028   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eIndirectCommandsLayoutNV>
28029   {
28030     using type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
28031   };
28032 
28033   template <>
28034   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV>
28035   {
28036     using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
28037   };
28038 
28039 
28040 
28041   template <>
28042   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
28043   {
28044     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
28045   };
28046 
28047   struct IndirectCommandsStreamNV
28048   {
28049 
28050 
28051 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28052     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
28053     : buffer( buffer_ ), offset( offset_ )
28054     {}
28055 
28056     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28057 
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28058     IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
28059       : IndirectCommandsStreamNV( *reinterpret_cast<IndirectCommandsStreamNV const *>( &rhs ) )
28060     {}
28061 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28062 
28063     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28064 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28065     IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
28066     {
28067       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const *>( &rhs );
28068       return *this;
28069     }
28070 
setBufferVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28071     IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28072     {
28073       buffer = buffer_;
28074       return *this;
28075     }
28076 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28077     IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
28078     {
28079       offset = offset_;
28080       return *this;
28081     }
28082 
28083 
operator VkIndirectCommandsStreamNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28084     operator VkIndirectCommandsStreamNV const&() const VULKAN_HPP_NOEXCEPT
28085     {
28086       return *reinterpret_cast<const VkIndirectCommandsStreamNV*>( this );
28087     }
28088 
operator VkIndirectCommandsStreamNV&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28089     operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT
28090     {
28091       return *reinterpret_cast<VkIndirectCommandsStreamNV*>( this );
28092     }
28093 
28094 
28095 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28096     auto operator<=>( IndirectCommandsStreamNV const& ) const = default;
28097 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28098     bool operator==( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28099     {
28100       return ( buffer == rhs.buffer )
28101           && ( offset == rhs.offset );
28102     }
28103 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV28104     bool operator!=( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28105     {
28106       return !operator==( rhs );
28107     }
28108 #endif
28109 
28110 
28111 
28112   public:
28113     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28114     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
28115 
28116   };
28117   static_assert( sizeof( IndirectCommandsStreamNV ) == sizeof( VkIndirectCommandsStreamNV ), "struct and wrapper have different size!" );
28118   static_assert( std::is_standard_layout<IndirectCommandsStreamNV>::value, "struct wrapper is not a standard layout!" );
28119 
28120   struct GeneratedCommandsInfoNV
28121   {
28122     static const bool allowDuplicate = false;
28123     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV;
28124 
28125 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28126     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
28127     : 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_ )
28128     {}
28129 
28130     VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28131 
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28132     GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28133       : GeneratedCommandsInfoNV( *reinterpret_cast<GeneratedCommandsInfoNV const *>( &rhs ) )
28134     {}
28135 
28136 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28137     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_ = {} )
28138     : 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_ )
28139     {}
28140 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28141 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28142 
28143     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28144 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28145     GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28146     {
28147       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const *>( &rhs );
28148       return *this;
28149     }
28150 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28151     GeneratedCommandsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28152     {
28153       pNext = pNext_;
28154       return *this;
28155     }
28156 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28157     GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
28158     {
28159       pipelineBindPoint = pipelineBindPoint_;
28160       return *this;
28161     }
28162 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28163     GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
28164     {
28165       pipeline = pipeline_;
28166       return *this;
28167     }
28168 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28169     GeneratedCommandsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
28170     {
28171       indirectCommandsLayout = indirectCommandsLayout_;
28172       return *this;
28173     }
28174 
setStreamCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28175     GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
28176     {
28177       streamCount = streamCount_;
28178       return *this;
28179     }
28180 
setPStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28181     GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ ) VULKAN_HPP_NOEXCEPT
28182     {
28183       pStreams = pStreams_;
28184       return *this;
28185     }
28186 
28187 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28188     GeneratedCommandsInfoNV & setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_ ) VULKAN_HPP_NOEXCEPT
28189     {
28190       streamCount = static_cast<uint32_t>( streams_.size() );
28191       pStreams = streams_.data();
28192       return *this;
28193     }
28194 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28195 
setSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28196     GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
28197     {
28198       sequencesCount = sequencesCount_;
28199       return *this;
28200     }
28201 
setPreprocessBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28202     GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT
28203     {
28204       preprocessBuffer = preprocessBuffer_;
28205       return *this;
28206     }
28207 
setPreprocessOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28208     GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT
28209     {
28210       preprocessOffset = preprocessOffset_;
28211       return *this;
28212     }
28213 
setPreprocessSizeVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28214     GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
28215     {
28216       preprocessSize = preprocessSize_;
28217       return *this;
28218     }
28219 
setSequencesCountBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28220     GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT
28221     {
28222       sequencesCountBuffer = sequencesCountBuffer_;
28223       return *this;
28224     }
28225 
setSequencesCountOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28226     GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT
28227     {
28228       sequencesCountOffset = sequencesCountOffset_;
28229       return *this;
28230     }
28231 
setSequencesIndexBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28232     GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
28233     {
28234       sequencesIndexBuffer = sequencesIndexBuffer_;
28235       return *this;
28236     }
28237 
setSequencesIndexOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28238     GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT
28239     {
28240       sequencesIndexOffset = sequencesIndexOffset_;
28241       return *this;
28242     }
28243 
28244 
operator VkGeneratedCommandsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28245     operator VkGeneratedCommandsInfoNV const&() const VULKAN_HPP_NOEXCEPT
28246     {
28247       return *reinterpret_cast<const VkGeneratedCommandsInfoNV*>( this );
28248     }
28249 
operator VkGeneratedCommandsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28250     operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT
28251     {
28252       return *reinterpret_cast<VkGeneratedCommandsInfoNV*>( this );
28253     }
28254 
28255 
28256 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28257     auto operator<=>( GeneratedCommandsInfoNV const& ) const = default;
28258 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28259     bool operator==( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28260     {
28261       return ( sType == rhs.sType )
28262           && ( pNext == rhs.pNext )
28263           && ( pipelineBindPoint == rhs.pipelineBindPoint )
28264           && ( pipeline == rhs.pipeline )
28265           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
28266           && ( streamCount == rhs.streamCount )
28267           && ( pStreams == rhs.pStreams )
28268           && ( sequencesCount == rhs.sequencesCount )
28269           && ( preprocessBuffer == rhs.preprocessBuffer )
28270           && ( preprocessOffset == rhs.preprocessOffset )
28271           && ( preprocessSize == rhs.preprocessSize )
28272           && ( sequencesCountBuffer == rhs.sequencesCountBuffer )
28273           && ( sequencesCountOffset == rhs.sequencesCountOffset )
28274           && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer )
28275           && ( sequencesIndexOffset == rhs.sequencesIndexOffset );
28276     }
28277 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV28278     bool operator!=( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28279     {
28280       return !operator==( rhs );
28281     }
28282 #endif
28283 
28284 
28285 
28286   public:
28287     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV;
28288     const void* pNext = {};
28289     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
28290     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
28291     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
28292     uint32_t streamCount = {};
28293     const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams = {};
28294     uint32_t sequencesCount = {};
28295     VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {};
28296     VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {};
28297     VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {};
28298     VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {};
28299     VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {};
28300     VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {};
28301     VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {};
28302 
28303   };
28304   static_assert( sizeof( GeneratedCommandsInfoNV ) == sizeof( VkGeneratedCommandsInfoNV ), "struct and wrapper have different size!" );
28305   static_assert( std::is_standard_layout<GeneratedCommandsInfoNV>::value, "struct wrapper is not a standard layout!" );
28306 
28307   template <>
28308   struct CppType<StructureType, StructureType::eGeneratedCommandsInfoNV>
28309   {
28310     using Type = GeneratedCommandsInfoNV;
28311   };
28312 
28313   struct MemoryBarrier
28314   {
28315     static const bool allowDuplicate = false;
28316     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier;
28317 
28318 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier28319     VULKAN_HPP_CONSTEXPR MemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}) VULKAN_HPP_NOEXCEPT
28320     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ )
28321     {}
28322 
28323     VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28324 
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier28325     MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
28326       : MemoryBarrier( *reinterpret_cast<MemoryBarrier const *>( &rhs ) )
28327     {}
28328 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28329 
28330     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28331 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier28332     MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
28333     {
28334       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier const *>( &rhs );
28335       return *this;
28336     }
28337 
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier28338     MemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28339     {
28340       pNext = pNext_;
28341       return *this;
28342     }
28343 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier28344     MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
28345     {
28346       srcAccessMask = srcAccessMask_;
28347       return *this;
28348     }
28349 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier28350     MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
28351     {
28352       dstAccessMask = dstAccessMask_;
28353       return *this;
28354     }
28355 
28356 
operator VkMemoryBarrier const&VULKAN_HPP_NAMESPACE::MemoryBarrier28357     operator VkMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
28358     {
28359       return *reinterpret_cast<const VkMemoryBarrier*>( this );
28360     }
28361 
operator VkMemoryBarrier&VULKAN_HPP_NAMESPACE::MemoryBarrier28362     operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
28363     {
28364       return *reinterpret_cast<VkMemoryBarrier*>( this );
28365     }
28366 
28367 
28368 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28369     auto operator<=>( MemoryBarrier const& ) const = default;
28370 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier28371     bool operator==( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
28372     {
28373       return ( sType == rhs.sType )
28374           && ( pNext == rhs.pNext )
28375           && ( srcAccessMask == rhs.srcAccessMask )
28376           && ( dstAccessMask == rhs.dstAccessMask );
28377     }
28378 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier28379     bool operator!=( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
28380     {
28381       return !operator==( rhs );
28382     }
28383 #endif
28384 
28385 
28386 
28387   public:
28388     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier;
28389     const void* pNext = {};
28390     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
28391     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
28392 
28393   };
28394   static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" );
28395   static_assert( std::is_standard_layout<MemoryBarrier>::value, "struct wrapper is not a standard layout!" );
28396 
28397   template <>
28398   struct CppType<StructureType, StructureType::eMemoryBarrier>
28399   {
28400     using Type = MemoryBarrier;
28401   };
28402 
28403   struct ImageMemoryBarrier
28404   {
28405     static const bool allowDuplicate = false;
28406     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier;
28407 
28408 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28409     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
28410     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ )
28411     {}
28412 
28413     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28414 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28415     ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
28416       : ImageMemoryBarrier( *reinterpret_cast<ImageMemoryBarrier const *>( &rhs ) )
28417     {}
28418 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28419 
28420     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28421 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier28422     ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
28423     {
28424       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const *>( &rhs );
28425       return *this;
28426     }
28427 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28428     ImageMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28429     {
28430       pNext = pNext_;
28431       return *this;
28432     }
28433 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28434     ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
28435     {
28436       srcAccessMask = srcAccessMask_;
28437       return *this;
28438     }
28439 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28440     ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
28441     {
28442       dstAccessMask = dstAccessMask_;
28443       return *this;
28444     }
28445 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28446     ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
28447     {
28448       oldLayout = oldLayout_;
28449       return *this;
28450     }
28451 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28452     ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
28453     {
28454       newLayout = newLayout_;
28455       return *this;
28456     }
28457 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28458     ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
28459     {
28460       srcQueueFamilyIndex = srcQueueFamilyIndex_;
28461       return *this;
28462     }
28463 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28464     ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
28465     {
28466       dstQueueFamilyIndex = dstQueueFamilyIndex_;
28467       return *this;
28468     }
28469 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28470     ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
28471     {
28472       image = image_;
28473       return *this;
28474     }
28475 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier28476     ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
28477     {
28478       subresourceRange = subresourceRange_;
28479       return *this;
28480     }
28481 
28482 
operator VkImageMemoryBarrier const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier28483     operator VkImageMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
28484     {
28485       return *reinterpret_cast<const VkImageMemoryBarrier*>( this );
28486     }
28487 
operator VkImageMemoryBarrier&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier28488     operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
28489     {
28490       return *reinterpret_cast<VkImageMemoryBarrier*>( this );
28491     }
28492 
28493 
28494 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28495     auto operator<=>( ImageMemoryBarrier const& ) const = default;
28496 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier28497     bool operator==( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
28498     {
28499       return ( sType == rhs.sType )
28500           && ( pNext == rhs.pNext )
28501           && ( srcAccessMask == rhs.srcAccessMask )
28502           && ( dstAccessMask == rhs.dstAccessMask )
28503           && ( oldLayout == rhs.oldLayout )
28504           && ( newLayout == rhs.newLayout )
28505           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
28506           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
28507           && ( image == rhs.image )
28508           && ( subresourceRange == rhs.subresourceRange );
28509     }
28510 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier28511     bool operator!=( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
28512     {
28513       return !operator==( rhs );
28514     }
28515 #endif
28516 
28517 
28518 
28519   public:
28520     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier;
28521     const void* pNext = {};
28522     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
28523     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
28524     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
28525     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
28526     uint32_t srcQueueFamilyIndex = {};
28527     uint32_t dstQueueFamilyIndex = {};
28528     VULKAN_HPP_NAMESPACE::Image image = {};
28529     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
28530 
28531   };
28532   static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" );
28533   static_assert( std::is_standard_layout<ImageMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
28534 
28535   template <>
28536   struct CppType<StructureType, StructureType::eImageMemoryBarrier>
28537   {
28538     using Type = ImageMemoryBarrier;
28539   };
28540 
28541   struct MemoryBarrier2KHR
28542   {
28543     static const bool allowDuplicate = false;
28544     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier2KHR;
28545 
28546 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryBarrier2KHRVULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28547     VULKAN_HPP_CONSTEXPR MemoryBarrier2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ = {}) VULKAN_HPP_NOEXCEPT
28548     : srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ )
28549     {}
28550 
28551     VULKAN_HPP_CONSTEXPR MemoryBarrier2KHR( MemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28552 
MemoryBarrier2KHRVULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28553     MemoryBarrier2KHR( VkMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
28554       : MemoryBarrier2KHR( *reinterpret_cast<MemoryBarrier2KHR const *>( &rhs ) )
28555     {}
28556 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28557 
28558     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2KHR & operator=( MemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28559 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28560     MemoryBarrier2KHR & operator=( VkMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
28561     {
28562       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR const *>( &rhs );
28563       return *this;
28564     }
28565 
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28566     MemoryBarrier2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28567     {
28568       pNext = pNext_;
28569       return *this;
28570     }
28571 
setSrcStageMaskVULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28572     MemoryBarrier2KHR & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT
28573     {
28574       srcStageMask = srcStageMask_;
28575       return *this;
28576     }
28577 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28578     MemoryBarrier2KHR & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
28579     {
28580       srcAccessMask = srcAccessMask_;
28581       return *this;
28582     }
28583 
setDstStageMaskVULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28584     MemoryBarrier2KHR & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT
28585     {
28586       dstStageMask = dstStageMask_;
28587       return *this;
28588     }
28589 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28590     MemoryBarrier2KHR & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
28591     {
28592       dstAccessMask = dstAccessMask_;
28593       return *this;
28594     }
28595 
28596 
operator VkMemoryBarrier2KHR const&VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28597     operator VkMemoryBarrier2KHR const&() const VULKAN_HPP_NOEXCEPT
28598     {
28599       return *reinterpret_cast<const VkMemoryBarrier2KHR*>( this );
28600     }
28601 
operator VkMemoryBarrier2KHR&VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28602     operator VkMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT
28603     {
28604       return *reinterpret_cast<VkMemoryBarrier2KHR*>( this );
28605     }
28606 
28607 
28608 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28609     auto operator<=>( MemoryBarrier2KHR const& ) const = default;
28610 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28611     bool operator==( MemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28612     {
28613       return ( sType == rhs.sType )
28614           && ( pNext == rhs.pNext )
28615           && ( srcStageMask == rhs.srcStageMask )
28616           && ( srcAccessMask == rhs.srcAccessMask )
28617           && ( dstStageMask == rhs.dstStageMask )
28618           && ( dstAccessMask == rhs.dstAccessMask );
28619     }
28620 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR28621     bool operator!=( MemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28622     {
28623       return !operator==( rhs );
28624     }
28625 #endif
28626 
28627 
28628 
28629   public:
28630     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier2KHR;
28631     const void* pNext = {};
28632     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {};
28633     VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {};
28634     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {};
28635     VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {};
28636 
28637   };
28638   static_assert( sizeof( MemoryBarrier2KHR ) == sizeof( VkMemoryBarrier2KHR ), "struct and wrapper have different size!" );
28639   static_assert( std::is_standard_layout<MemoryBarrier2KHR>::value, "struct wrapper is not a standard layout!" );
28640 
28641   template <>
28642   struct CppType<StructureType, StructureType::eMemoryBarrier2KHR>
28643   {
28644     using Type = MemoryBarrier2KHR;
28645   };
28646 
28647   struct ImageMemoryBarrier2KHR
28648   {
28649     static const bool allowDuplicate = false;
28650     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier2KHR;
28651 
28652 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryBarrier2KHRVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28653     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR 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
28654     : srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ )
28655     {}
28656 
28657     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2KHR( ImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28658 
ImageMemoryBarrier2KHRVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28659     ImageMemoryBarrier2KHR( VkImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
28660       : ImageMemoryBarrier2KHR( *reinterpret_cast<ImageMemoryBarrier2KHR const *>( &rhs ) )
28661     {}
28662 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28663 
28664     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2KHR & operator=( ImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28665 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28666     ImageMemoryBarrier2KHR & operator=( VkImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
28667     {
28668       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR const *>( &rhs );
28669       return *this;
28670     }
28671 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28672     ImageMemoryBarrier2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28673     {
28674       pNext = pNext_;
28675       return *this;
28676     }
28677 
setSrcStageMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28678     ImageMemoryBarrier2KHR & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT
28679     {
28680       srcStageMask = srcStageMask_;
28681       return *this;
28682     }
28683 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28684     ImageMemoryBarrier2KHR & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
28685     {
28686       srcAccessMask = srcAccessMask_;
28687       return *this;
28688     }
28689 
setDstStageMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28690     ImageMemoryBarrier2KHR & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT
28691     {
28692       dstStageMask = dstStageMask_;
28693       return *this;
28694     }
28695 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28696     ImageMemoryBarrier2KHR & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
28697     {
28698       dstAccessMask = dstAccessMask_;
28699       return *this;
28700     }
28701 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28702     ImageMemoryBarrier2KHR & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
28703     {
28704       oldLayout = oldLayout_;
28705       return *this;
28706     }
28707 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28708     ImageMemoryBarrier2KHR & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
28709     {
28710       newLayout = newLayout_;
28711       return *this;
28712     }
28713 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28714     ImageMemoryBarrier2KHR & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
28715     {
28716       srcQueueFamilyIndex = srcQueueFamilyIndex_;
28717       return *this;
28718     }
28719 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28720     ImageMemoryBarrier2KHR & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
28721     {
28722       dstQueueFamilyIndex = dstQueueFamilyIndex_;
28723       return *this;
28724     }
28725 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28726     ImageMemoryBarrier2KHR & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
28727     {
28728       image = image_;
28729       return *this;
28730     }
28731 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28732     ImageMemoryBarrier2KHR & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
28733     {
28734       subresourceRange = subresourceRange_;
28735       return *this;
28736     }
28737 
28738 
operator VkImageMemoryBarrier2KHR const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28739     operator VkImageMemoryBarrier2KHR const&() const VULKAN_HPP_NOEXCEPT
28740     {
28741       return *reinterpret_cast<const VkImageMemoryBarrier2KHR*>( this );
28742     }
28743 
operator VkImageMemoryBarrier2KHR&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28744     operator VkImageMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT
28745     {
28746       return *reinterpret_cast<VkImageMemoryBarrier2KHR*>( this );
28747     }
28748 
28749 
28750 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28751     auto operator<=>( ImageMemoryBarrier2KHR const& ) const = default;
28752 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28753     bool operator==( ImageMemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28754     {
28755       return ( sType == rhs.sType )
28756           && ( pNext == rhs.pNext )
28757           && ( srcStageMask == rhs.srcStageMask )
28758           && ( srcAccessMask == rhs.srcAccessMask )
28759           && ( dstStageMask == rhs.dstStageMask )
28760           && ( dstAccessMask == rhs.dstAccessMask )
28761           && ( oldLayout == rhs.oldLayout )
28762           && ( newLayout == rhs.newLayout )
28763           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
28764           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
28765           && ( image == rhs.image )
28766           && ( subresourceRange == rhs.subresourceRange );
28767     }
28768 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR28769     bool operator!=( ImageMemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28770     {
28771       return !operator==( rhs );
28772     }
28773 #endif
28774 
28775 
28776 
28777   public:
28778     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier2KHR;
28779     const void* pNext = {};
28780     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {};
28781     VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {};
28782     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {};
28783     VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {};
28784     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
28785     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
28786     uint32_t srcQueueFamilyIndex = {};
28787     uint32_t dstQueueFamilyIndex = {};
28788     VULKAN_HPP_NAMESPACE::Image image = {};
28789     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
28790 
28791   };
28792   static_assert( sizeof( ImageMemoryBarrier2KHR ) == sizeof( VkImageMemoryBarrier2KHR ), "struct and wrapper have different size!" );
28793   static_assert( std::is_standard_layout<ImageMemoryBarrier2KHR>::value, "struct wrapper is not a standard layout!" );
28794 
28795   template <>
28796   struct CppType<StructureType, StructureType::eImageMemoryBarrier2KHR>
28797   {
28798     using Type = ImageMemoryBarrier2KHR;
28799   };
28800 
28801   struct DependencyInfoKHR
28802   {
28803     static const bool allowDuplicate = false;
28804     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDependencyInfoKHR;
28805 
28806 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DependencyInfoKHRVULKAN_HPP_NAMESPACE::DependencyInfoKHR28807     VULKAN_HPP_CONSTEXPR DependencyInfoKHR(VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, uint32_t memoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR* pMemoryBarriers_ = {}, uint32_t bufferMemoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR* pBufferMemoryBarriers_ = {}, uint32_t imageMemoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR* pImageMemoryBarriers_ = {}) VULKAN_HPP_NOEXCEPT
28808     : dependencyFlags( dependencyFlags_ ), memoryBarrierCount( memoryBarrierCount_ ), pMemoryBarriers( pMemoryBarriers_ ), bufferMemoryBarrierCount( bufferMemoryBarrierCount_ ), pBufferMemoryBarriers( pBufferMemoryBarriers_ ), imageMemoryBarrierCount( imageMemoryBarrierCount_ ), pImageMemoryBarriers( pImageMemoryBarriers_ )
28809     {}
28810 
28811     VULKAN_HPP_CONSTEXPR DependencyInfoKHR( DependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28812 
DependencyInfoKHRVULKAN_HPP_NAMESPACE::DependencyInfoKHR28813     DependencyInfoKHR( VkDependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28814       : DependencyInfoKHR( *reinterpret_cast<DependencyInfoKHR const *>( &rhs ) )
28815     {}
28816 
28817 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DependencyInfoKHRVULKAN_HPP_NAMESPACE::DependencyInfoKHR28818     DependencyInfoKHR( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR> const & memoryBarriers_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR> const & bufferMemoryBarriers_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR> const & imageMemoryBarriers_ = {} )
28819     : dependencyFlags( dependencyFlags_ ), memoryBarrierCount( static_cast<uint32_t>( memoryBarriers_.size() ) ), pMemoryBarriers( memoryBarriers_.data() ), bufferMemoryBarrierCount( static_cast<uint32_t>( bufferMemoryBarriers_.size() ) ), pBufferMemoryBarriers( bufferMemoryBarriers_.data() ), imageMemoryBarrierCount( static_cast<uint32_t>( imageMemoryBarriers_.size() ) ), pImageMemoryBarriers( imageMemoryBarriers_.data() )
28820     {}
28821 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28822 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28823 
28824     VULKAN_HPP_CONSTEXPR_14 DependencyInfoKHR & operator=( DependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28825 
operator =VULKAN_HPP_NAMESPACE::DependencyInfoKHR28826     DependencyInfoKHR & operator=( VkDependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28827     {
28828       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DependencyInfoKHR const *>( &rhs );
28829       return *this;
28830     }
28831 
setPNextVULKAN_HPP_NAMESPACE::DependencyInfoKHR28832     DependencyInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28833     {
28834       pNext = pNext_;
28835       return *this;
28836     }
28837 
setDependencyFlagsVULKAN_HPP_NAMESPACE::DependencyInfoKHR28838     DependencyInfoKHR & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
28839     {
28840       dependencyFlags = dependencyFlags_;
28841       return *this;
28842     }
28843 
setMemoryBarrierCountVULKAN_HPP_NAMESPACE::DependencyInfoKHR28844     DependencyInfoKHR & setMemoryBarrierCount( uint32_t memoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
28845     {
28846       memoryBarrierCount = memoryBarrierCount_;
28847       return *this;
28848     }
28849 
setPMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfoKHR28850     DependencyInfoKHR & setPMemoryBarriers( const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR* pMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
28851     {
28852       pMemoryBarriers = pMemoryBarriers_;
28853       return *this;
28854     }
28855 
28856 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfoKHR28857     DependencyInfoKHR & setMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR> const & memoryBarriers_ ) VULKAN_HPP_NOEXCEPT
28858     {
28859       memoryBarrierCount = static_cast<uint32_t>( memoryBarriers_.size() );
28860       pMemoryBarriers = memoryBarriers_.data();
28861       return *this;
28862     }
28863 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28864 
setBufferMemoryBarrierCountVULKAN_HPP_NAMESPACE::DependencyInfoKHR28865     DependencyInfoKHR & setBufferMemoryBarrierCount( uint32_t bufferMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
28866     {
28867       bufferMemoryBarrierCount = bufferMemoryBarrierCount_;
28868       return *this;
28869     }
28870 
setPBufferMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfoKHR28871     DependencyInfoKHR & setPBufferMemoryBarriers( const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR* pBufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
28872     {
28873       pBufferMemoryBarriers = pBufferMemoryBarriers_;
28874       return *this;
28875     }
28876 
28877 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfoKHR28878     DependencyInfoKHR & setBufferMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR> const & bufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
28879     {
28880       bufferMemoryBarrierCount = static_cast<uint32_t>( bufferMemoryBarriers_.size() );
28881       pBufferMemoryBarriers = bufferMemoryBarriers_.data();
28882       return *this;
28883     }
28884 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28885 
setImageMemoryBarrierCountVULKAN_HPP_NAMESPACE::DependencyInfoKHR28886     DependencyInfoKHR & setImageMemoryBarrierCount( uint32_t imageMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
28887     {
28888       imageMemoryBarrierCount = imageMemoryBarrierCount_;
28889       return *this;
28890     }
28891 
setPImageMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfoKHR28892     DependencyInfoKHR & setPImageMemoryBarriers( const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR* pImageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
28893     {
28894       pImageMemoryBarriers = pImageMemoryBarriers_;
28895       return *this;
28896     }
28897 
28898 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfoKHR28899     DependencyInfoKHR & setImageMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR> const & imageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
28900     {
28901       imageMemoryBarrierCount = static_cast<uint32_t>( imageMemoryBarriers_.size() );
28902       pImageMemoryBarriers = imageMemoryBarriers_.data();
28903       return *this;
28904     }
28905 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28906 
28907 
operator VkDependencyInfoKHR const&VULKAN_HPP_NAMESPACE::DependencyInfoKHR28908     operator VkDependencyInfoKHR const&() const VULKAN_HPP_NOEXCEPT
28909     {
28910       return *reinterpret_cast<const VkDependencyInfoKHR*>( this );
28911     }
28912 
operator VkDependencyInfoKHR&VULKAN_HPP_NAMESPACE::DependencyInfoKHR28913     operator VkDependencyInfoKHR &() VULKAN_HPP_NOEXCEPT
28914     {
28915       return *reinterpret_cast<VkDependencyInfoKHR*>( this );
28916     }
28917 
28918 
28919 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28920     auto operator<=>( DependencyInfoKHR const& ) const = default;
28921 #else
operator ==VULKAN_HPP_NAMESPACE::DependencyInfoKHR28922     bool operator==( DependencyInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28923     {
28924       return ( sType == rhs.sType )
28925           && ( pNext == rhs.pNext )
28926           && ( dependencyFlags == rhs.dependencyFlags )
28927           && ( memoryBarrierCount == rhs.memoryBarrierCount )
28928           && ( pMemoryBarriers == rhs.pMemoryBarriers )
28929           && ( bufferMemoryBarrierCount == rhs.bufferMemoryBarrierCount )
28930           && ( pBufferMemoryBarriers == rhs.pBufferMemoryBarriers )
28931           && ( imageMemoryBarrierCount == rhs.imageMemoryBarrierCount )
28932           && ( pImageMemoryBarriers == rhs.pImageMemoryBarriers );
28933     }
28934 
operator !=VULKAN_HPP_NAMESPACE::DependencyInfoKHR28935     bool operator!=( DependencyInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28936     {
28937       return !operator==( rhs );
28938     }
28939 #endif
28940 
28941 
28942 
28943   public:
28944     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDependencyInfoKHR;
28945     const void* pNext = {};
28946     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
28947     uint32_t memoryBarrierCount = {};
28948     const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR* pMemoryBarriers = {};
28949     uint32_t bufferMemoryBarrierCount = {};
28950     const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR* pBufferMemoryBarriers = {};
28951     uint32_t imageMemoryBarrierCount = {};
28952     const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR* pImageMemoryBarriers = {};
28953 
28954   };
28955   static_assert( sizeof( DependencyInfoKHR ) == sizeof( VkDependencyInfoKHR ), "struct and wrapper have different size!" );
28956   static_assert( std::is_standard_layout<DependencyInfoKHR>::value, "struct wrapper is not a standard layout!" );
28957 
28958   template <>
28959   struct CppType<StructureType, StructureType::eDependencyInfoKHR>
28960   {
28961     using Type = DependencyInfoKHR;
28962   };
28963 
28964   class Sampler
28965   {
28966   public:
28967     using CType = VkSampler;
28968 
28969     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler;
28970     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
28971 
28972   public:
Sampler()28973     VULKAN_HPP_CONSTEXPR Sampler() VULKAN_HPP_NOEXCEPT
28974       : m_sampler(VK_NULL_HANDLE)
28975     {}
28976 
Sampler(std::nullptr_t)28977     VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28978       : m_sampler(VK_NULL_HANDLE)
28979     {}
28980 
Sampler(VkSampler sampler)28981     VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT
28982       : m_sampler( sampler )
28983     {}
28984 
28985 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSampler sampler)28986     Sampler & operator=(VkSampler sampler) VULKAN_HPP_NOEXCEPT
28987     {
28988       m_sampler = sampler;
28989       return *this;
28990     }
28991 #endif
28992 
operator =(std::nullptr_t)28993     Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28994     {
28995       m_sampler = VK_NULL_HANDLE;
28996       return *this;
28997     }
28998 
28999 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29000     auto operator<=>( Sampler const& ) const = default;
29001 #else
operator ==(Sampler const & rhs) const29002     bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
29003     {
29004       return m_sampler == rhs.m_sampler;
29005     }
29006 
operator !=(Sampler const & rhs) const29007     bool operator!=(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
29008     {
29009       return m_sampler != rhs.m_sampler;
29010     }
29011 
operator <(Sampler const & rhs) const29012     bool operator<(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
29013     {
29014       return m_sampler < rhs.m_sampler;
29015     }
29016 #endif
29017 
operator VkSampler() const29018     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT
29019     {
29020       return m_sampler;
29021     }
29022 
operator bool() const29023     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29024     {
29025       return m_sampler != VK_NULL_HANDLE;
29026     }
29027 
operator !() const29028     bool operator!() const VULKAN_HPP_NOEXCEPT
29029     {
29030       return m_sampler == VK_NULL_HANDLE;
29031     }
29032 
29033   private:
29034     VkSampler m_sampler;
29035   };
29036   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" );
29037 
29038   template <>
29039   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSampler>
29040   {
29041     using type = VULKAN_HPP_NAMESPACE::Sampler;
29042   };
29043 
29044   template <>
29045   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSampler>
29046   {
29047     using Type = VULKAN_HPP_NAMESPACE::Sampler;
29048   };
29049 
29050 
29051   template <>
29052   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler>
29053   {
29054     using Type = VULKAN_HPP_NAMESPACE::Sampler;
29055   };
29056 
29057 
29058   template <>
29059   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Sampler>
29060   {
29061     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29062   };
29063 
29064   struct DescriptorImageInfo
29065   {
29066 
29067 
29068 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo29069     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
29070     : sampler( sampler_ ), imageView( imageView_ ), imageLayout( imageLayout_ )
29071     {}
29072 
29073     VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29074 
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo29075     DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29076       : DescriptorImageInfo( *reinterpret_cast<DescriptorImageInfo const *>( &rhs ) )
29077     {}
29078 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29079 
29080     VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29081 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo29082     DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29083     {
29084       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorImageInfo const *>( &rhs );
29085       return *this;
29086     }
29087 
setSamplerVULKAN_HPP_NAMESPACE::DescriptorImageInfo29088     DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
29089     {
29090       sampler = sampler_;
29091       return *this;
29092     }
29093 
setImageViewVULKAN_HPP_NAMESPACE::DescriptorImageInfo29094     DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
29095     {
29096       imageView = imageView_;
29097       return *this;
29098     }
29099 
setImageLayoutVULKAN_HPP_NAMESPACE::DescriptorImageInfo29100     DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
29101     {
29102       imageLayout = imageLayout_;
29103       return *this;
29104     }
29105 
29106 
operator VkDescriptorImageInfo const&VULKAN_HPP_NAMESPACE::DescriptorImageInfo29107     operator VkDescriptorImageInfo const&() const VULKAN_HPP_NOEXCEPT
29108     {
29109       return *reinterpret_cast<const VkDescriptorImageInfo*>( this );
29110     }
29111 
operator VkDescriptorImageInfo&VULKAN_HPP_NAMESPACE::DescriptorImageInfo29112     operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
29113     {
29114       return *reinterpret_cast<VkDescriptorImageInfo*>( this );
29115     }
29116 
29117 
29118 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29119     auto operator<=>( DescriptorImageInfo const& ) const = default;
29120 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorImageInfo29121     bool operator==( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29122     {
29123       return ( sampler == rhs.sampler )
29124           && ( imageView == rhs.imageView )
29125           && ( imageLayout == rhs.imageLayout );
29126     }
29127 
operator !=VULKAN_HPP_NAMESPACE::DescriptorImageInfo29128     bool operator!=( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29129     {
29130       return !operator==( rhs );
29131     }
29132 #endif
29133 
29134 
29135 
29136   public:
29137     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
29138     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
29139     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
29140 
29141   };
29142   static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" );
29143   static_assert( std::is_standard_layout<DescriptorImageInfo>::value, "struct wrapper is not a standard layout!" );
29144 
29145   struct DescriptorBufferInfo
29146   {
29147 
29148 
29149 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo29150     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT
29151     : buffer( buffer_ ), offset( offset_ ), range( range_ )
29152     {}
29153 
29154     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29155 
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo29156     DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29157       : DescriptorBufferInfo( *reinterpret_cast<DescriptorBufferInfo const *>( &rhs ) )
29158     {}
29159 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29160 
29161     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29162 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo29163     DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29164     {
29165       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const *>( &rhs );
29166       return *this;
29167     }
29168 
setBufferVULKAN_HPP_NAMESPACE::DescriptorBufferInfo29169     DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
29170     {
29171       buffer = buffer_;
29172       return *this;
29173     }
29174 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorBufferInfo29175     DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
29176     {
29177       offset = offset_;
29178       return *this;
29179     }
29180 
setRangeVULKAN_HPP_NAMESPACE::DescriptorBufferInfo29181     DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
29182     {
29183       range = range_;
29184       return *this;
29185     }
29186 
29187 
operator VkDescriptorBufferInfo const&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo29188     operator VkDescriptorBufferInfo const&() const VULKAN_HPP_NOEXCEPT
29189     {
29190       return *reinterpret_cast<const VkDescriptorBufferInfo*>( this );
29191     }
29192 
operator VkDescriptorBufferInfo&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo29193     operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
29194     {
29195       return *reinterpret_cast<VkDescriptorBufferInfo*>( this );
29196     }
29197 
29198 
29199 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29200     auto operator<=>( DescriptorBufferInfo const& ) const = default;
29201 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferInfo29202     bool operator==( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29203     {
29204       return ( buffer == rhs.buffer )
29205           && ( offset == rhs.offset )
29206           && ( range == rhs.range );
29207     }
29208 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferInfo29209     bool operator!=( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29210     {
29211       return !operator==( rhs );
29212     }
29213 #endif
29214 
29215 
29216 
29217   public:
29218     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
29219     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
29220     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
29221 
29222   };
29223   static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" );
29224   static_assert( std::is_standard_layout<DescriptorBufferInfo>::value, "struct wrapper is not a standard layout!" );
29225 
29226   class BufferView
29227   {
29228   public:
29229     using CType = VkBufferView;
29230 
29231     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView;
29232     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
29233 
29234   public:
BufferView()29235     VULKAN_HPP_CONSTEXPR BufferView() VULKAN_HPP_NOEXCEPT
29236       : m_bufferView(VK_NULL_HANDLE)
29237     {}
29238 
BufferView(std::nullptr_t)29239     VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29240       : m_bufferView(VK_NULL_HANDLE)
29241     {}
29242 
BufferView(VkBufferView bufferView)29243     VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT
29244       : m_bufferView( bufferView )
29245     {}
29246 
29247 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBufferView bufferView)29248     BufferView & operator=(VkBufferView bufferView) VULKAN_HPP_NOEXCEPT
29249     {
29250       m_bufferView = bufferView;
29251       return *this;
29252     }
29253 #endif
29254 
operator =(std::nullptr_t)29255     BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29256     {
29257       m_bufferView = VK_NULL_HANDLE;
29258       return *this;
29259     }
29260 
29261 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29262     auto operator<=>( BufferView const& ) const = default;
29263 #else
operator ==(BufferView const & rhs) const29264     bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
29265     {
29266       return m_bufferView == rhs.m_bufferView;
29267     }
29268 
operator !=(BufferView const & rhs) const29269     bool operator!=(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
29270     {
29271       return m_bufferView != rhs.m_bufferView;
29272     }
29273 
operator <(BufferView const & rhs) const29274     bool operator<(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
29275     {
29276       return m_bufferView < rhs.m_bufferView;
29277     }
29278 #endif
29279 
operator VkBufferView() const29280     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT
29281     {
29282       return m_bufferView;
29283     }
29284 
operator bool() const29285     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29286     {
29287       return m_bufferView != VK_NULL_HANDLE;
29288     }
29289 
operator !() const29290     bool operator!() const VULKAN_HPP_NOEXCEPT
29291     {
29292       return m_bufferView == VK_NULL_HANDLE;
29293     }
29294 
29295   private:
29296     VkBufferView m_bufferView;
29297   };
29298   static_assert( sizeof( VULKAN_HPP_NAMESPACE::BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" );
29299 
29300   template <>
29301   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBufferView>
29302   {
29303     using type = VULKAN_HPP_NAMESPACE::BufferView;
29304   };
29305 
29306   template <>
29307   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eBufferView>
29308   {
29309     using Type = VULKAN_HPP_NAMESPACE::BufferView;
29310   };
29311 
29312 
29313   template <>
29314   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView>
29315   {
29316     using Type = VULKAN_HPP_NAMESPACE::BufferView;
29317   };
29318 
29319 
29320   template <>
29321   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::BufferView>
29322   {
29323     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29324   };
29325 
29326   struct WriteDescriptorSet
29327   {
29328     static const bool allowDuplicate = false;
29329     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet;
29330 
29331 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet29332     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
29333     : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), pImageInfo( pImageInfo_ ), pBufferInfo( pBufferInfo_ ), pTexelBufferView( pTexelBufferView_ )
29334     {}
29335 
29336     VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29337 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet29338     WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
29339       : WriteDescriptorSet( *reinterpret_cast<WriteDescriptorSet const *>( &rhs ) )
29340     {}
29341 
29342 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet29343     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_ = {} )
29344     : 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() )
29345     {
29346 #ifdef VULKAN_HPP_NO_EXCEPTIONS
29347       VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) == 1 );
29348 #else
29349       if ( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1 )
29350       {
29351         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::WriteDescriptorSet::WriteDescriptorSet: ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1" );
29352       }
29353 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
29354     }
29355 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29356 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29357 
29358     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29359 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet29360     WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
29361     {
29362       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
29363       return *this;
29364     }
29365 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSet29366     WriteDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29367     {
29368       pNext = pNext_;
29369       return *this;
29370     }
29371 
setDstSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet29372     WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
29373     {
29374       dstSet = dstSet_;
29375       return *this;
29376     }
29377 
setDstBindingVULKAN_HPP_NAMESPACE::WriteDescriptorSet29378     WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
29379     {
29380       dstBinding = dstBinding_;
29381       return *this;
29382     }
29383 
setDstArrayElementVULKAN_HPP_NAMESPACE::WriteDescriptorSet29384     WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
29385     {
29386       dstArrayElement = dstArrayElement_;
29387       return *this;
29388     }
29389 
setDescriptorCountVULKAN_HPP_NAMESPACE::WriteDescriptorSet29390     WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
29391     {
29392       descriptorCount = descriptorCount_;
29393       return *this;
29394     }
29395 
setDescriptorTypeVULKAN_HPP_NAMESPACE::WriteDescriptorSet29396     WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
29397     {
29398       descriptorType = descriptorType_;
29399       return *this;
29400     }
29401 
setPImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet29402     WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ ) VULKAN_HPP_NOEXCEPT
29403     {
29404       pImageInfo = pImageInfo_;
29405       return *this;
29406     }
29407 
29408 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet29409     WriteDescriptorSet & setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
29410     {
29411       descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
29412       pImageInfo = imageInfo_.data();
29413       return *this;
29414     }
29415 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29416 
setPBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet29417     WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
29418     {
29419       pBufferInfo = pBufferInfo_;
29420       return *this;
29421     }
29422 
29423 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet29424     WriteDescriptorSet & setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
29425     {
29426       descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
29427       pBufferInfo = bufferInfo_.data();
29428       return *this;
29429     }
29430 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29431 
setPTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet29432     WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
29433     {
29434       pTexelBufferView = pTexelBufferView_;
29435       return *this;
29436     }
29437 
29438 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet29439     WriteDescriptorSet & setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
29440     {
29441       descriptorCount = static_cast<uint32_t>( texelBufferView_.size() );
29442       pTexelBufferView = texelBufferView_.data();
29443       return *this;
29444     }
29445 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29446 
29447 
operator VkWriteDescriptorSet const&VULKAN_HPP_NAMESPACE::WriteDescriptorSet29448     operator VkWriteDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
29449     {
29450       return *reinterpret_cast<const VkWriteDescriptorSet*>( this );
29451     }
29452 
operator VkWriteDescriptorSet&VULKAN_HPP_NAMESPACE::WriteDescriptorSet29453     operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
29454     {
29455       return *reinterpret_cast<VkWriteDescriptorSet*>( this );
29456     }
29457 
29458 
29459 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29460     auto operator<=>( WriteDescriptorSet const& ) const = default;
29461 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSet29462     bool operator==( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
29463     {
29464       return ( sType == rhs.sType )
29465           && ( pNext == rhs.pNext )
29466           && ( dstSet == rhs.dstSet )
29467           && ( dstBinding == rhs.dstBinding )
29468           && ( dstArrayElement == rhs.dstArrayElement )
29469           && ( descriptorCount == rhs.descriptorCount )
29470           && ( descriptorType == rhs.descriptorType )
29471           && ( pImageInfo == rhs.pImageInfo )
29472           && ( pBufferInfo == rhs.pBufferInfo )
29473           && ( pTexelBufferView == rhs.pTexelBufferView );
29474     }
29475 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSet29476     bool operator!=( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
29477     {
29478       return !operator==( rhs );
29479     }
29480 #endif
29481 
29482 
29483 
29484   public:
29485     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet;
29486     const void* pNext = {};
29487     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
29488     uint32_t dstBinding = {};
29489     uint32_t dstArrayElement = {};
29490     uint32_t descriptorCount = {};
29491     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
29492     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo = {};
29493     const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo = {};
29494     const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView = {};
29495 
29496   };
29497   static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" );
29498   static_assert( std::is_standard_layout<WriteDescriptorSet>::value, "struct wrapper is not a standard layout!" );
29499 
29500   template <>
29501   struct CppType<StructureType, StructureType::eWriteDescriptorSet>
29502   {
29503     using Type = WriteDescriptorSet;
29504   };
29505 
29506   class DescriptorUpdateTemplate
29507   {
29508   public:
29509     using CType = VkDescriptorUpdateTemplate;
29510 
29511     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate;
29512     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
29513 
29514   public:
DescriptorUpdateTemplate()29515     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() VULKAN_HPP_NOEXCEPT
29516       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
29517     {}
29518 
DescriptorUpdateTemplate(std::nullptr_t)29519     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29520       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
29521     {}
29522 
DescriptorUpdateTemplate(VkDescriptorUpdateTemplate descriptorUpdateTemplate)29523     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT
29524       : m_descriptorUpdateTemplate( descriptorUpdateTemplate )
29525     {}
29526 
29527 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorUpdateTemplate descriptorUpdateTemplate)29528     DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate) VULKAN_HPP_NOEXCEPT
29529     {
29530       m_descriptorUpdateTemplate = descriptorUpdateTemplate;
29531       return *this;
29532     }
29533 #endif
29534 
operator =(std::nullptr_t)29535     DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29536     {
29537       m_descriptorUpdateTemplate = VK_NULL_HANDLE;
29538       return *this;
29539     }
29540 
29541 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29542     auto operator<=>( DescriptorUpdateTemplate const& ) const = default;
29543 #else
operator ==(DescriptorUpdateTemplate const & rhs) const29544     bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
29545     {
29546       return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate;
29547     }
29548 
operator !=(DescriptorUpdateTemplate const & rhs) const29549     bool operator!=(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
29550     {
29551       return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate;
29552     }
29553 
operator <(DescriptorUpdateTemplate const & rhs) const29554     bool operator<(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
29555     {
29556       return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate;
29557     }
29558 #endif
29559 
operator VkDescriptorUpdateTemplate() const29560     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT
29561     {
29562       return m_descriptorUpdateTemplate;
29563     }
29564 
operator bool() const29565     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29566     {
29567       return m_descriptorUpdateTemplate != VK_NULL_HANDLE;
29568     }
29569 
operator !() const29570     bool operator!() const VULKAN_HPP_NOEXCEPT
29571     {
29572       return m_descriptorUpdateTemplate == VK_NULL_HANDLE;
29573     }
29574 
29575   private:
29576     VkDescriptorUpdateTemplate m_descriptorUpdateTemplate;
29577   };
29578   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" );
29579 
29580   template <>
29581   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorUpdateTemplate>
29582   {
29583     using type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
29584   };
29585 
29586   template <>
29587   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate>
29588   {
29589     using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
29590   };
29591 
29592 
29593   template <>
29594   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate>
29595   {
29596     using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
29597   };
29598 
29599 
29600   template <>
29601   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
29602   {
29603     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29604   };
29605   using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
29606 
29607   class Event
29608   {
29609   public:
29610     using CType = VkEvent;
29611 
29612     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent;
29613     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
29614 
29615   public:
Event()29616     VULKAN_HPP_CONSTEXPR Event() VULKAN_HPP_NOEXCEPT
29617       : m_event(VK_NULL_HANDLE)
29618     {}
29619 
Event(std::nullptr_t)29620     VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29621       : m_event(VK_NULL_HANDLE)
29622     {}
29623 
Event(VkEvent event)29624     VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT
29625       : m_event( event )
29626     {}
29627 
29628 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkEvent event)29629     Event & operator=(VkEvent event) VULKAN_HPP_NOEXCEPT
29630     {
29631       m_event = event;
29632       return *this;
29633     }
29634 #endif
29635 
operator =(std::nullptr_t)29636     Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29637     {
29638       m_event = VK_NULL_HANDLE;
29639       return *this;
29640     }
29641 
29642 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29643     auto operator<=>( Event const& ) const = default;
29644 #else
operator ==(Event const & rhs) const29645     bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT
29646     {
29647       return m_event == rhs.m_event;
29648     }
29649 
operator !=(Event const & rhs) const29650     bool operator!=(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
29651     {
29652       return m_event != rhs.m_event;
29653     }
29654 
operator <(Event const & rhs) const29655     bool operator<(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
29656     {
29657       return m_event < rhs.m_event;
29658     }
29659 #endif
29660 
operator VkEvent() const29661     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT
29662     {
29663       return m_event;
29664     }
29665 
operator bool() const29666     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29667     {
29668       return m_event != VK_NULL_HANDLE;
29669     }
29670 
operator !() const29671     bool operator!() const VULKAN_HPP_NOEXCEPT
29672     {
29673       return m_event == VK_NULL_HANDLE;
29674     }
29675 
29676   private:
29677     VkEvent m_event;
29678   };
29679   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" );
29680 
29681   template <>
29682   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eEvent>
29683   {
29684     using type = VULKAN_HPP_NAMESPACE::Event;
29685   };
29686 
29687   template <>
29688   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eEvent>
29689   {
29690     using Type = VULKAN_HPP_NAMESPACE::Event;
29691   };
29692 
29693 
29694   template <>
29695   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent>
29696   {
29697     using Type = VULKAN_HPP_NAMESPACE::Event;
29698   };
29699 
29700 
29701   template <>
29702   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Event>
29703   {
29704     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29705   };
29706 
29707   struct ImageResolve
29708   {
29709 
29710 
29711 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve29712     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
29713     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
29714     {}
29715 
29716     VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29717 
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve29718     ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
29719       : ImageResolve( *reinterpret_cast<ImageResolve const *>( &rhs ) )
29720     {}
29721 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29722 
29723     VULKAN_HPP_CONSTEXPR_14 ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29724 
operator =VULKAN_HPP_NAMESPACE::ImageResolve29725     ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
29726     {
29727       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve const *>( &rhs );
29728       return *this;
29729     }
29730 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve29731     ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
29732     {
29733       srcSubresource = srcSubresource_;
29734       return *this;
29735     }
29736 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve29737     ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
29738     {
29739       srcOffset = srcOffset_;
29740       return *this;
29741     }
29742 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve29743     ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
29744     {
29745       dstSubresource = dstSubresource_;
29746       return *this;
29747     }
29748 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve29749     ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
29750     {
29751       dstOffset = dstOffset_;
29752       return *this;
29753     }
29754 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve29755     ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
29756     {
29757       extent = extent_;
29758       return *this;
29759     }
29760 
29761 
operator VkImageResolve const&VULKAN_HPP_NAMESPACE::ImageResolve29762     operator VkImageResolve const&() const VULKAN_HPP_NOEXCEPT
29763     {
29764       return *reinterpret_cast<const VkImageResolve*>( this );
29765     }
29766 
operator VkImageResolve&VULKAN_HPP_NAMESPACE::ImageResolve29767     operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
29768     {
29769       return *reinterpret_cast<VkImageResolve*>( this );
29770     }
29771 
29772 
29773 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29774     auto operator<=>( ImageResolve const& ) const = default;
29775 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve29776     bool operator==( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
29777     {
29778       return ( srcSubresource == rhs.srcSubresource )
29779           && ( srcOffset == rhs.srcOffset )
29780           && ( dstSubresource == rhs.dstSubresource )
29781           && ( dstOffset == rhs.dstOffset )
29782           && ( extent == rhs.extent );
29783     }
29784 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve29785     bool operator!=( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
29786     {
29787       return !operator==( rhs );
29788     }
29789 #endif
29790 
29791 
29792 
29793   public:
29794     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
29795     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
29796     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
29797     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
29798     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
29799 
29800   };
29801   static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" );
29802   static_assert( std::is_standard_layout<ImageResolve>::value, "struct wrapper is not a standard layout!" );
29803 
29804   struct ImageResolve2KHR
29805   {
29806     static const bool allowDuplicate = false;
29807     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2KHR;
29808 
29809 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolve2KHRVULKAN_HPP_NAMESPACE::ImageResolve2KHR29810     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
29811     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
29812     {}
29813 
29814     VULKAN_HPP_CONSTEXPR ImageResolve2KHR( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29815 
ImageResolve2KHRVULKAN_HPP_NAMESPACE::ImageResolve2KHR29816     ImageResolve2KHR( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29817       : ImageResolve2KHR( *reinterpret_cast<ImageResolve2KHR const *>( &rhs ) )
29818     {}
29819 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29820 
29821     VULKAN_HPP_CONSTEXPR_14 ImageResolve2KHR & operator=( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29822 
operator =VULKAN_HPP_NAMESPACE::ImageResolve2KHR29823     ImageResolve2KHR & operator=( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29824     {
29825       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve2KHR const *>( &rhs );
29826       return *this;
29827     }
29828 
setPNextVULKAN_HPP_NAMESPACE::ImageResolve2KHR29829     ImageResolve2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29830     {
29831       pNext = pNext_;
29832       return *this;
29833     }
29834 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve2KHR29835     ImageResolve2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
29836     {
29837       srcSubresource = srcSubresource_;
29838       return *this;
29839     }
29840 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve2KHR29841     ImageResolve2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
29842     {
29843       srcOffset = srcOffset_;
29844       return *this;
29845     }
29846 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve2KHR29847     ImageResolve2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
29848     {
29849       dstSubresource = dstSubresource_;
29850       return *this;
29851     }
29852 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve2KHR29853     ImageResolve2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
29854     {
29855       dstOffset = dstOffset_;
29856       return *this;
29857     }
29858 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve2KHR29859     ImageResolve2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
29860     {
29861       extent = extent_;
29862       return *this;
29863     }
29864 
29865 
operator VkImageResolve2KHR const&VULKAN_HPP_NAMESPACE::ImageResolve2KHR29866     operator VkImageResolve2KHR const&() const VULKAN_HPP_NOEXCEPT
29867     {
29868       return *reinterpret_cast<const VkImageResolve2KHR*>( this );
29869     }
29870 
operator VkImageResolve2KHR&VULKAN_HPP_NAMESPACE::ImageResolve2KHR29871     operator VkImageResolve2KHR &() VULKAN_HPP_NOEXCEPT
29872     {
29873       return *reinterpret_cast<VkImageResolve2KHR*>( this );
29874     }
29875 
29876 
29877 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29878     auto operator<=>( ImageResolve2KHR const& ) const = default;
29879 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve2KHR29880     bool operator==( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
29881     {
29882       return ( sType == rhs.sType )
29883           && ( pNext == rhs.pNext )
29884           && ( srcSubresource == rhs.srcSubresource )
29885           && ( srcOffset == rhs.srcOffset )
29886           && ( dstSubresource == rhs.dstSubresource )
29887           && ( dstOffset == rhs.dstOffset )
29888           && ( extent == rhs.extent );
29889     }
29890 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve2KHR29891     bool operator!=( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
29892     {
29893       return !operator==( rhs );
29894     }
29895 #endif
29896 
29897 
29898 
29899   public:
29900     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2KHR;
29901     const void* pNext = {};
29902     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
29903     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
29904     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
29905     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
29906     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
29907 
29908   };
29909   static_assert( sizeof( ImageResolve2KHR ) == sizeof( VkImageResolve2KHR ), "struct and wrapper have different size!" );
29910   static_assert( std::is_standard_layout<ImageResolve2KHR>::value, "struct wrapper is not a standard layout!" );
29911 
29912   template <>
29913   struct CppType<StructureType, StructureType::eImageResolve2KHR>
29914   {
29915     using Type = ImageResolve2KHR;
29916   };
29917 
29918   struct ResolveImageInfo2KHR
29919   {
29920     static const bool allowDuplicate = false;
29921     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2KHR;
29922 
29923 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29924     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
29925     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
29926     {}
29927 
29928     VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29929 
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29930     ResolveImageInfo2KHR( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29931       : ResolveImageInfo2KHR( *reinterpret_cast<ResolveImageInfo2KHR const *>( &rhs ) )
29932     {}
29933 
29934 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29935     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_ )
29936     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
29937     {}
29938 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29939 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29940 
29941     VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2KHR & operator=( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29942 
operator =VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29943     ResolveImageInfo2KHR & operator=( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29944     {
29945       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR const *>( &rhs );
29946       return *this;
29947     }
29948 
setPNextVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29949     ResolveImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29950     {
29951       pNext = pNext_;
29952       return *this;
29953     }
29954 
setSrcImageVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29955     ResolveImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
29956     {
29957       srcImage = srcImage_;
29958       return *this;
29959     }
29960 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29961     ResolveImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
29962     {
29963       srcImageLayout = srcImageLayout_;
29964       return *this;
29965     }
29966 
setDstImageVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29967     ResolveImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
29968     {
29969       dstImage = dstImage_;
29970       return *this;
29971     }
29972 
setDstImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29973     ResolveImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
29974     {
29975       dstImageLayout = dstImageLayout_;
29976       return *this;
29977     }
29978 
setRegionCountVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29979     ResolveImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
29980     {
29981       regionCount = regionCount_;
29982       return *this;
29983     }
29984 
setPRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29985     ResolveImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
29986     {
29987       pRegions = pRegions_;
29988       return *this;
29989     }
29990 
29991 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR29992     ResolveImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
29993     {
29994       regionCount = static_cast<uint32_t>( regions_.size() );
29995       pRegions = regions_.data();
29996       return *this;
29997     }
29998 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29999 
30000 
operator VkResolveImageInfo2KHR const&VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR30001     operator VkResolveImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
30002     {
30003       return *reinterpret_cast<const VkResolveImageInfo2KHR*>( this );
30004     }
30005 
operator VkResolveImageInfo2KHR&VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR30006     operator VkResolveImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
30007     {
30008       return *reinterpret_cast<VkResolveImageInfo2KHR*>( this );
30009     }
30010 
30011 
30012 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30013     auto operator<=>( ResolveImageInfo2KHR const& ) const = default;
30014 #else
operator ==VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR30015     bool operator==( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
30016     {
30017       return ( sType == rhs.sType )
30018           && ( pNext == rhs.pNext )
30019           && ( srcImage == rhs.srcImage )
30020           && ( srcImageLayout == rhs.srcImageLayout )
30021           && ( dstImage == rhs.dstImage )
30022           && ( dstImageLayout == rhs.dstImageLayout )
30023           && ( regionCount == rhs.regionCount )
30024           && ( pRegions == rhs.pRegions );
30025     }
30026 
operator !=VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR30027     bool operator!=( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
30028     {
30029       return !operator==( rhs );
30030     }
30031 #endif
30032 
30033 
30034 
30035   public:
30036     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2KHR;
30037     const void* pNext = {};
30038     VULKAN_HPP_NAMESPACE::Image srcImage = {};
30039     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
30040     VULKAN_HPP_NAMESPACE::Image dstImage = {};
30041     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
30042     uint32_t regionCount = {};
30043     const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions = {};
30044 
30045   };
30046   static_assert( sizeof( ResolveImageInfo2KHR ) == sizeof( VkResolveImageInfo2KHR ), "struct and wrapper have different size!" );
30047   static_assert( std::is_standard_layout<ResolveImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
30048 
30049   template <>
30050   struct CppType<StructureType, StructureType::eResolveImageInfo2KHR>
30051   {
30052     using Type = ResolveImageInfo2KHR;
30053   };
30054 
30055   struct PerformanceMarkerInfoINTEL
30056   {
30057     static const bool allowDuplicate = false;
30058     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL;
30059 
30060 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30061     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL(uint64_t marker_ = {}) VULKAN_HPP_NOEXCEPT
30062     : marker( marker_ )
30063     {}
30064 
30065     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30066 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30067     PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
30068       : PerformanceMarkerInfoINTEL( *reinterpret_cast<PerformanceMarkerInfoINTEL const *>( &rhs ) )
30069     {}
30070 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30071 
30072     VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30073 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30074     PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
30075     {
30076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const *>( &rhs );
30077       return *this;
30078     }
30079 
setPNextVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30080     PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30081     {
30082       pNext = pNext_;
30083       return *this;
30084     }
30085 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30086     PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT
30087     {
30088       marker = marker_;
30089       return *this;
30090     }
30091 
30092 
operator VkPerformanceMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30093     operator VkPerformanceMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
30094     {
30095       return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( this );
30096     }
30097 
operator VkPerformanceMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30098     operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
30099     {
30100       return *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>( this );
30101     }
30102 
30103 
30104 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30105     auto operator<=>( PerformanceMarkerInfoINTEL const& ) const = default;
30106 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30107     bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
30108     {
30109       return ( sType == rhs.sType )
30110           && ( pNext == rhs.pNext )
30111           && ( marker == rhs.marker );
30112     }
30113 
operator !=VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL30114     bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
30115     {
30116       return !operator==( rhs );
30117     }
30118 #endif
30119 
30120 
30121 
30122   public:
30123     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
30124     const void* pNext = {};
30125     uint64_t marker = {};
30126 
30127   };
30128   static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" );
30129   static_assert( std::is_standard_layout<PerformanceMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
30130 
30131   template <>
30132   struct CppType<StructureType, StructureType::ePerformanceMarkerInfoINTEL>
30133   {
30134     using Type = PerformanceMarkerInfoINTEL;
30135   };
30136 
30137   struct PerformanceOverrideInfoINTEL
30138   {
30139     static const bool allowDuplicate = false;
30140     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL;
30141 
30142 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30143     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
30144     : type( type_ ), enable( enable_ ), parameter( parameter_ )
30145     {}
30146 
30147     VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30148 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30149     PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
30150       : PerformanceOverrideInfoINTEL( *reinterpret_cast<PerformanceOverrideInfoINTEL const *>( &rhs ) )
30151     {}
30152 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30153 
30154     VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30155 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30156     PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
30157     {
30158       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const *>( &rhs );
30159       return *this;
30160     }
30161 
setPNextVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30162     PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30163     {
30164       pNext = pNext_;
30165       return *this;
30166     }
30167 
setTypeVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30168     PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
30169     {
30170       type = type_;
30171       return *this;
30172     }
30173 
setEnableVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30174     PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT
30175     {
30176       enable = enable_;
30177       return *this;
30178     }
30179 
setParameterVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30180     PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT
30181     {
30182       parameter = parameter_;
30183       return *this;
30184     }
30185 
30186 
operator VkPerformanceOverrideInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30187     operator VkPerformanceOverrideInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
30188     {
30189       return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( this );
30190     }
30191 
operator VkPerformanceOverrideInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30192     operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
30193     {
30194       return *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>( this );
30195     }
30196 
30197 
30198 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30199     auto operator<=>( PerformanceOverrideInfoINTEL const& ) const = default;
30200 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30201     bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
30202     {
30203       return ( sType == rhs.sType )
30204           && ( pNext == rhs.pNext )
30205           && ( type == rhs.type )
30206           && ( enable == rhs.enable )
30207           && ( parameter == rhs.parameter );
30208     }
30209 
operator !=VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL30210     bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
30211     {
30212       return !operator==( rhs );
30213     }
30214 #endif
30215 
30216 
30217 
30218   public:
30219     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
30220     const void* pNext = {};
30221     VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware;
30222     VULKAN_HPP_NAMESPACE::Bool32 enable = {};
30223     uint64_t parameter = {};
30224 
30225   };
30226   static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" );
30227   static_assert( std::is_standard_layout<PerformanceOverrideInfoINTEL>::value, "struct wrapper is not a standard layout!" );
30228 
30229   template <>
30230   struct CppType<StructureType, StructureType::ePerformanceOverrideInfoINTEL>
30231   {
30232     using Type = PerformanceOverrideInfoINTEL;
30233   };
30234 
30235   struct PerformanceStreamMarkerInfoINTEL
30236   {
30237     static const bool allowDuplicate = false;
30238     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL;
30239 
30240 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30241     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL(uint32_t marker_ = {}) VULKAN_HPP_NOEXCEPT
30242     : marker( marker_ )
30243     {}
30244 
30245     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30246 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30247     PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
30248       : PerformanceStreamMarkerInfoINTEL( *reinterpret_cast<PerformanceStreamMarkerInfoINTEL const *>( &rhs ) )
30249     {}
30250 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30251 
30252     VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30253 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30254     PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
30255     {
30256       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const *>( &rhs );
30257       return *this;
30258     }
30259 
setPNextVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30260     PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30261     {
30262       pNext = pNext_;
30263       return *this;
30264     }
30265 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30266     PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT
30267     {
30268       marker = marker_;
30269       return *this;
30270     }
30271 
30272 
operator VkPerformanceStreamMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30273     operator VkPerformanceStreamMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
30274     {
30275       return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( this );
30276     }
30277 
operator VkPerformanceStreamMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30278     operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
30279     {
30280       return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>( this );
30281     }
30282 
30283 
30284 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30285     auto operator<=>( PerformanceStreamMarkerInfoINTEL const& ) const = default;
30286 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30287     bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
30288     {
30289       return ( sType == rhs.sType )
30290           && ( pNext == rhs.pNext )
30291           && ( marker == rhs.marker );
30292     }
30293 
operator !=VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL30294     bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
30295     {
30296       return !operator==( rhs );
30297     }
30298 #endif
30299 
30300 
30301 
30302   public:
30303     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
30304     const void* pNext = {};
30305     uint32_t marker = {};
30306 
30307   };
30308   static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" );
30309   static_assert( std::is_standard_layout<PerformanceStreamMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
30310 
30311   template <>
30312   struct CppType<StructureType, StructureType::ePerformanceStreamMarkerInfoINTEL>
30313   {
30314     using Type = PerformanceStreamMarkerInfoINTEL;
30315   };
30316 
30317   struct Viewport
30318   {
30319 
30320 
30321 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportVULKAN_HPP_NAMESPACE::Viewport30322     VULKAN_HPP_CONSTEXPR Viewport(float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {}) VULKAN_HPP_NOEXCEPT
30323     : x( x_ ), y( y_ ), width( width_ ), height( height_ ), minDepth( minDepth_ ), maxDepth( maxDepth_ )
30324     {}
30325 
30326     VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30327 
ViewportVULKAN_HPP_NAMESPACE::Viewport30328     Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
30329       : Viewport( *reinterpret_cast<Viewport const *>( &rhs ) )
30330     {}
30331 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30332 
30333     VULKAN_HPP_CONSTEXPR_14 Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30334 
operator =VULKAN_HPP_NAMESPACE::Viewport30335     Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
30336     {
30337       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Viewport const *>( &rhs );
30338       return *this;
30339     }
30340 
setXVULKAN_HPP_NAMESPACE::Viewport30341     Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
30342     {
30343       x = x_;
30344       return *this;
30345     }
30346 
setYVULKAN_HPP_NAMESPACE::Viewport30347     Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT
30348     {
30349       y = y_;
30350       return *this;
30351     }
30352 
setWidthVULKAN_HPP_NAMESPACE::Viewport30353     Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT
30354     {
30355       width = width_;
30356       return *this;
30357     }
30358 
setHeightVULKAN_HPP_NAMESPACE::Viewport30359     Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT
30360     {
30361       height = height_;
30362       return *this;
30363     }
30364 
setMinDepthVULKAN_HPP_NAMESPACE::Viewport30365     Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT
30366     {
30367       minDepth = minDepth_;
30368       return *this;
30369     }
30370 
setMaxDepthVULKAN_HPP_NAMESPACE::Viewport30371     Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT
30372     {
30373       maxDepth = maxDepth_;
30374       return *this;
30375     }
30376 
30377 
operator VkViewport const&VULKAN_HPP_NAMESPACE::Viewport30378     operator VkViewport const&() const VULKAN_HPP_NOEXCEPT
30379     {
30380       return *reinterpret_cast<const VkViewport*>( this );
30381     }
30382 
operator VkViewport&VULKAN_HPP_NAMESPACE::Viewport30383     operator VkViewport &() VULKAN_HPP_NOEXCEPT
30384     {
30385       return *reinterpret_cast<VkViewport*>( this );
30386     }
30387 
30388 
30389 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30390     auto operator<=>( Viewport const& ) const = default;
30391 #else
operator ==VULKAN_HPP_NAMESPACE::Viewport30392     bool operator==( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
30393     {
30394       return ( x == rhs.x )
30395           && ( y == rhs.y )
30396           && ( width == rhs.width )
30397           && ( height == rhs.height )
30398           && ( minDepth == rhs.minDepth )
30399           && ( maxDepth == rhs.maxDepth );
30400     }
30401 
operator !=VULKAN_HPP_NAMESPACE::Viewport30402     bool operator!=( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
30403     {
30404       return !operator==( rhs );
30405     }
30406 #endif
30407 
30408 
30409 
30410   public:
30411     float x = {};
30412     float y = {};
30413     float width = {};
30414     float height = {};
30415     float minDepth = {};
30416     float maxDepth = {};
30417 
30418   };
30419   static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" );
30420   static_assert( std::is_standard_layout<Viewport>::value, "struct wrapper is not a standard layout!" );
30421 
30422   struct ShadingRatePaletteNV
30423   {
30424 
30425 
30426 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30427     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV(uint32_t shadingRatePaletteEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = {}) VULKAN_HPP_NOEXCEPT
30428     : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ), pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
30429     {}
30430 
30431     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30432 
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30433     ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
30434       : ShadingRatePaletteNV( *reinterpret_cast<ShadingRatePaletteNV const *>( &rhs ) )
30435     {}
30436 
30437 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30438     ShadingRatePaletteNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
30439     : shadingRatePaletteEntryCount( static_cast<uint32_t>( shadingRatePaletteEntries_.size() ) ), pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() )
30440     {}
30441 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30442 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30443 
30444     VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30445 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30446     ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
30447     {
30448       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const *>( &rhs );
30449       return *this;
30450     }
30451 
setShadingRatePaletteEntryCountVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30452     ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
30453     {
30454       shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
30455       return *this;
30456     }
30457 
setPShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30458     ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
30459     {
30460       pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
30461       return *this;
30462     }
30463 
30464 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30465     ShadingRatePaletteNV & setShadingRatePaletteEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
30466     {
30467       shadingRatePaletteEntryCount = static_cast<uint32_t>( shadingRatePaletteEntries_.size() );
30468       pShadingRatePaletteEntries = shadingRatePaletteEntries_.data();
30469       return *this;
30470     }
30471 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30472 
30473 
operator VkShadingRatePaletteNV const&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30474     operator VkShadingRatePaletteNV const&() const VULKAN_HPP_NOEXCEPT
30475     {
30476       return *reinterpret_cast<const VkShadingRatePaletteNV*>( this );
30477     }
30478 
operator VkShadingRatePaletteNV&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30479     operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
30480     {
30481       return *reinterpret_cast<VkShadingRatePaletteNV*>( this );
30482     }
30483 
30484 
30485 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30486     auto operator<=>( ShadingRatePaletteNV const& ) const = default;
30487 #else
operator ==VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30488     bool operator==( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
30489     {
30490       return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount )
30491           && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
30492     }
30493 
operator !=VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV30494     bool operator!=( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
30495     {
30496       return !operator==( rhs );
30497     }
30498 #endif
30499 
30500 
30501 
30502   public:
30503     uint32_t shadingRatePaletteEntryCount = {};
30504     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries = {};
30505 
30506   };
30507   static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" );
30508   static_assert( std::is_standard_layout<ShadingRatePaletteNV>::value, "struct wrapper is not a standard layout!" );
30509 
30510   struct ViewportWScalingNV
30511   {
30512 
30513 
30514 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV30515     VULKAN_HPP_CONSTEXPR ViewportWScalingNV(float xcoeff_ = {}, float ycoeff_ = {}) VULKAN_HPP_NOEXCEPT
30516     : xcoeff( xcoeff_ ), ycoeff( ycoeff_ )
30517     {}
30518 
30519     VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30520 
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV30521     ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
30522       : ViewportWScalingNV( *reinterpret_cast<ViewportWScalingNV const *>( &rhs ) )
30523     {}
30524 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30525 
30526     VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30527 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV30528     ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
30529     {
30530       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportWScalingNV const *>( &rhs );
30531       return *this;
30532     }
30533 
setXcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV30534     ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
30535     {
30536       xcoeff = xcoeff_;
30537       return *this;
30538     }
30539 
setYcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV30540     ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT
30541     {
30542       ycoeff = ycoeff_;
30543       return *this;
30544     }
30545 
30546 
operator VkViewportWScalingNV const&VULKAN_HPP_NAMESPACE::ViewportWScalingNV30547     operator VkViewportWScalingNV const&() const VULKAN_HPP_NOEXCEPT
30548     {
30549       return *reinterpret_cast<const VkViewportWScalingNV*>( this );
30550     }
30551 
operator VkViewportWScalingNV&VULKAN_HPP_NAMESPACE::ViewportWScalingNV30552     operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
30553     {
30554       return *reinterpret_cast<VkViewportWScalingNV*>( this );
30555     }
30556 
30557 
30558 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30559     auto operator<=>( ViewportWScalingNV const& ) const = default;
30560 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportWScalingNV30561     bool operator==( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
30562     {
30563       return ( xcoeff == rhs.xcoeff )
30564           && ( ycoeff == rhs.ycoeff );
30565     }
30566 
operator !=VULKAN_HPP_NAMESPACE::ViewportWScalingNV30567     bool operator!=( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
30568     {
30569       return !operator==( rhs );
30570     }
30571 #endif
30572 
30573 
30574 
30575   public:
30576     float xcoeff = {};
30577     float ycoeff = {};
30578 
30579   };
30580   static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" );
30581   static_assert( std::is_standard_layout<ViewportWScalingNV>::value, "struct wrapper is not a standard layout!" );
30582 
30583   struct StridedDeviceAddressRegionKHR
30584   {
30585 
30586 
30587 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StridedDeviceAddressRegionKHRVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30588     VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
30589     : deviceAddress( deviceAddress_ ), stride( stride_ ), size( size_ )
30590     {}
30591 
30592     VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30593 
StridedDeviceAddressRegionKHRVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30594     StridedDeviceAddressRegionKHR( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30595       : StridedDeviceAddressRegionKHR( *reinterpret_cast<StridedDeviceAddressRegionKHR const *>( &rhs ) )
30596     {}
30597 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30598 
30599     VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & operator=( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30600 
operator =VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30601     StridedDeviceAddressRegionKHR & operator=( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30602     {
30603       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR const *>( &rhs );
30604       return *this;
30605     }
30606 
setDeviceAddressVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30607     StridedDeviceAddressRegionKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
30608     {
30609       deviceAddress = deviceAddress_;
30610       return *this;
30611     }
30612 
setStrideVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30613     StridedDeviceAddressRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
30614     {
30615       stride = stride_;
30616       return *this;
30617     }
30618 
setSizeVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30619     StridedDeviceAddressRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
30620     {
30621       size = size_;
30622       return *this;
30623     }
30624 
30625 
operator VkStridedDeviceAddressRegionKHR const&VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30626     operator VkStridedDeviceAddressRegionKHR const&() const VULKAN_HPP_NOEXCEPT
30627     {
30628       return *reinterpret_cast<const VkStridedDeviceAddressRegionKHR*>( this );
30629     }
30630 
operator VkStridedDeviceAddressRegionKHR&VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30631     operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT
30632     {
30633       return *reinterpret_cast<VkStridedDeviceAddressRegionKHR*>( this );
30634     }
30635 
30636 
30637 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30638     auto operator<=>( StridedDeviceAddressRegionKHR const& ) const = default;
30639 #else
operator ==VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30640     bool operator==( StridedDeviceAddressRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
30641     {
30642       return ( deviceAddress == rhs.deviceAddress )
30643           && ( stride == rhs.stride )
30644           && ( size == rhs.size );
30645     }
30646 
operator !=VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR30647     bool operator!=( StridedDeviceAddressRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
30648     {
30649       return !operator==( rhs );
30650     }
30651 #endif
30652 
30653 
30654 
30655   public:
30656     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
30657     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
30658     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
30659 
30660   };
30661   static_assert( sizeof( StridedDeviceAddressRegionKHR ) == sizeof( VkStridedDeviceAddressRegionKHR ), "struct and wrapper have different size!" );
30662   static_assert( std::is_standard_layout<StridedDeviceAddressRegionKHR>::value, "struct wrapper is not a standard layout!" );
30663 
30664   class CommandBuffer
30665   {
30666   public:
30667     using CType = VkCommandBuffer;
30668 
30669     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer;
30670     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer;
30671 
30672   public:
CommandBuffer()30673     VULKAN_HPP_CONSTEXPR CommandBuffer() VULKAN_HPP_NOEXCEPT
30674       : m_commandBuffer(VK_NULL_HANDLE)
30675     {}
30676 
CommandBuffer(std::nullptr_t)30677     VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
30678       : m_commandBuffer(VK_NULL_HANDLE)
30679     {}
30680 
CommandBuffer(VkCommandBuffer commandBuffer)30681     VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT
30682       : m_commandBuffer( commandBuffer )
30683     {}
30684 
30685 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandBuffer commandBuffer)30686     CommandBuffer & operator=(VkCommandBuffer commandBuffer) VULKAN_HPP_NOEXCEPT
30687     {
30688       m_commandBuffer = commandBuffer;
30689       return *this;
30690     }
30691 #endif
30692 
operator =(std::nullptr_t)30693     CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
30694     {
30695       m_commandBuffer = VK_NULL_HANDLE;
30696       return *this;
30697     }
30698 
30699 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30700     auto operator<=>( CommandBuffer const& ) const = default;
30701 #else
operator ==(CommandBuffer const & rhs) const30702     bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
30703     {
30704       return m_commandBuffer == rhs.m_commandBuffer;
30705     }
30706 
operator !=(CommandBuffer const & rhs) const30707     bool operator!=(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
30708     {
30709       return m_commandBuffer != rhs.m_commandBuffer;
30710     }
30711 
operator <(CommandBuffer const & rhs) const30712     bool operator<(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
30713     {
30714       return m_commandBuffer < rhs.m_commandBuffer;
30715     }
30716 #endif
30717 
30718 
30719     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30720     VULKAN_HPP_NODISCARD Result begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30721 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30722     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30723     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
30724 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30725 
30726 
30727     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30728     void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30729 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30730     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30731     void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30733 
30734 
30735     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30736     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30737 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30738     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30739     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30740 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30741 
30742 
30743     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30744     void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30745 
30746 
30747     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30748     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;
30749 
30750 
30751     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30752     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;
30753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30754     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30755     void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30757 
30758 
30759     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30760     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;
30761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30762     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30763     void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30765 
30766     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30767     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;
30768 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30769     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30770     void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30771 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30772 
30773 
30774     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30775     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30776 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30777     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30778     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_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
30779 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30780 
30781 
30782     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30783     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;
30784 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30785     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30786     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;
30787 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30788 
30789 
30790     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30791     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;
30792 
30793 
30794     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30795     void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30796 
30797 
30798     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30799     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;
30800 
30801 
30802     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30803     void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30804 
30805 
30806     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30807     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30808 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30809     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30810     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_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
30811 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30812 
30813 
30814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30815     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;
30816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30817     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30818     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;
30819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30820 
30821 
30822     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30823     void bindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30824 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30825     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30826     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_NULLPTR_ASSIGNMENT, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
30827 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30828 
30829 
30830     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30831     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;
30832 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30833     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30834     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;
30835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30836 
30837 
30838     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30839     void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30841     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30842     void blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30843 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30844 
30845 
30846     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30847     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::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30848 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30849     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30850     void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30851 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30852 
30853 
30854     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30855     void buildAccelerationStructuresIndirectKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::DeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30856 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30857     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30858     void buildAccelerationStructuresIndirectKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses, ArrayProxy<const uint32_t> const & indirectStrides, ArrayProxy<const uint32_t* const > const & pMaxPrimitiveCounts, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
30859 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30860 
30861 
30862     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30863     void buildAccelerationStructuresKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30864 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30865     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30866     void buildAccelerationStructuresKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const > const & pBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
30867 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30868 
30869 
30870     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30871     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;
30872 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30873     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30874     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;
30875 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30876 
30877 
30878     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30879     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;
30880 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30881     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30882     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;
30883 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30884 
30885 
30886     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30887     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;
30888 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30889     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30890     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;
30891 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30892 
30893 
30894     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30895     void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30896 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30897     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30898     void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30899 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30900 
30901 
30902     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30903     void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30904 
30905 
30906     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30907     void copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30908 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30909     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30910     void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30911 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30912 
30913 
30914     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30915     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;
30916 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30917     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30918     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;
30919 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30920 
30921 
30922     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30923     void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30924 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30925     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30926     void copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30927 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30928 
30929 
30930     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30931     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;
30932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30933     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30934     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;
30935 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30936 
30937 
30938     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30939     void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30940 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30941     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30942     void copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30943 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30944 
30945 
30946     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30947     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;
30948 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30949     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30950     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;
30951 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30952 
30953 
30954     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30955     void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30956 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30957     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30958     void copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30959 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30960 
30961 
30962     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30963     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;
30964 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30965     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30966     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;
30967 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30968 
30969 
30970     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30971     void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30972 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30973     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30974     void copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30975 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30976 
30977 
30978     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30979     void copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30980 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30981     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30982     void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30983 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30984 
30985 
30986     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30987     void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30988 
30989 
30990     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30991     void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30992 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30993     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30994     void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
30995 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30996 
30997 
30998     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
30999     void debugMarkerEndEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31000 
31001 
31002     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31003     void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31004 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31005     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31006     void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31007 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31008 
31009 
31010     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31011     void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31012 
31013 
31014     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31015     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;
31016 
31017     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31018     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;
31019 
31020 
31021     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31022     void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31023 
31024 
31025     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31026     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;
31027 
31028 
31029     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31030     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;
31031 
31032 
31033     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31034     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;
31035 
31036 
31037     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31038     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;
31039 
31040     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31041     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;
31042 
31043     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31044     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;
31045 
31046 
31047     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31048     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;
31049 
31050 
31051     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31052     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;
31053 
31054 
31055     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31056     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;
31057 
31058     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31059     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;
31060 
31061     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31062     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;
31063 
31064 
31065     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31066     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;
31067 
31068 
31069     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31070     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;
31071 
31072 
31073     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31074     void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31075 
31076 
31077     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31078     void endConditionalRenderingEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31079 
31080 
31081     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31082     void endDebugUtilsLabelEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31083 
31084 
31085     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31086     void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31087 
31088 
31089     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31090     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;
31091 
31092 
31093     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31094     void endRenderPass( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31095 
31096 
31097     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31098     void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31100     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31101     void endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31102 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31103 
31104     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31105     void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31106 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31107     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31108     void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31109 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31110 
31111 
31112     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31113     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31114 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31115     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31116     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_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
31117 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31118 
31119 
31120     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31121     void executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31122 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31123     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31124     void executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31125 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31126 
31127 
31128     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31129     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;
31130 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31131     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31132     void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31133 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31134 
31135 
31136     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31137     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;
31138 
31139 
31140     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31141     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31143     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31144     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31146 
31147 
31148     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31149     void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31150 
31151 
31152     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31153     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;
31154 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31155     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31156     void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31157 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31158 
31159     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31160     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;
31161 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31162     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31163     void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31164 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31165 
31166 
31167     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31168     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;
31169 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31170     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31171     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;
31172 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31173 
31174 
31175     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31176     void pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31177 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31178     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31179     void pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31180 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31181 
31182 
31183     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31184     void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31185 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31186     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31187     void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31188 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31189 
31190 
31191     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31192     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;
31193 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31194     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31195     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;
31196 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31197 
31198 
31199     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31200     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;
31201 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31202     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31203     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;
31204 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31205 
31206 
31207     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31208     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;
31209 
31210 
31211     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31212     void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31213 
31214 
31215     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31216     void resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31217 
31218 
31219     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31220     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;
31221 
31222 
31223     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31224     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;
31225 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31226     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31227     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;
31228 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31229 
31230 
31231     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31232     void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31233 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31234     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31235     void resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31236 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31237 
31238 
31239     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31240     void setBlendConstants( const float blendConstants[4], Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31241 
31242 
31243     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31244     void setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31245 
31246 
31247     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31248     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;
31249 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31250     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31251     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;
31252 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31253 
31254 
31255     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31256     void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31257 
31258 
31259     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31260     void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31261 
31262 
31263     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31264     void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31265 
31266 
31267     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31268     void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31269 
31270 
31271     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31272     void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31273 
31274 
31275     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31276     void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31277 
31278 
31279     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31280     void setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31281 
31282 
31283     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31284     void setDeviceMask( uint32_t deviceMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31285 
31286     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31287     void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31288 
31289 
31290     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31291     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;
31292 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31293     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31294     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;
31295 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31296 
31297 
31298     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31299     void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31300 
31301 
31302     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31303     void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31305     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31306     void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const DependencyInfoKHR & dependencyInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31307 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31308 
31309 
31310     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31311     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;
31312 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31313     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31314     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;
31315 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31316 
31317 
31318     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31319     void setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31320 
31321 
31322     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31323     void setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D* pFragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31324 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31325     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31326     void setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31327 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31328 
31329 
31330     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31331     void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31332 
31333 
31334     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31335     void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31336 
31337 
31338     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31339     void setLineWidth( float lineWidth, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31340 
31341 
31342     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31343     VULKAN_HPP_NODISCARD Result setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31344 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31345     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31346     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
31347 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31348 
31349 
31350     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31351     VULKAN_HPP_NODISCARD Result setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31352 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31353     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31354     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
31355 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31356 
31357 
31358     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31359     VULKAN_HPP_NODISCARD Result setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31361     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31362     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
31363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31364 
31365 
31366     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31367     void setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31368 
31369 
31370     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31371     void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31372 
31373 
31374     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31375     void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31376 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31377     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31378     void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31380 
31381 
31382     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31383     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;
31384 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31385     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31386     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;
31387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31388 
31389 
31390     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31391     void setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31392 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31393     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31394     void setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31395 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31396 
31397 
31398     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31399     void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31400 
31401 
31402     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31403     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;
31404 
31405 
31406     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31407     void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31408 
31409 
31410     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31411     void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31412 
31413 
31414     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31415     void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31416 
31417 
31418     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31419     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;
31420 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31421     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31422     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;
31423 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31424 
31425 
31426     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31427     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;
31428 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31429     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31430     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;
31431 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31432 
31433 
31434     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31435     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;
31436 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31437     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31438     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;
31439 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31440 
31441 
31442     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31443     void setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31444 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31445     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31446     void setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31447 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31448 
31449 
31450     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31451     void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31452 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31453     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31454     void traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31455 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31456 
31457 
31458     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31459     void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31460 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31461     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31462     void traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31463 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31464 
31465 
31466     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31467     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;
31468 
31469 
31470     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31471     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;
31472 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31473     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31474     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;
31475 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31476 
31477 
31478     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31479     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;
31480 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31481     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31482     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;
31483 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31484 
31485 
31486     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31487     void waitEvents2KHR( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31488 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31489     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31490     void waitEvents2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfoKHR> const & dependencyInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
31491 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31492 
31493 
31494     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31495     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;
31496 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31497     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31498     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;
31499 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31500 
31501 
31502     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31503     void writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* 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;
31504 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31505     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31506     void writeAccelerationStructuresPropertiesNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> 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;
31507 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31508 
31509 
31510     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31511     void writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, 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;
31512 
31513 
31514     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31515     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;
31516 
31517 
31518     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31519     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;
31520 
31521 
31522     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31523     void writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31524 
31525 
31526 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
31527     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31528     VULKAN_HPP_NODISCARD Result end( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31529 #else
31530     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31531     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
31532 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31533 
31534 
31535 
31536 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
31537     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31538     VULKAN_HPP_NODISCARD Result reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
31539 #else
31540     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
31541     typename ResultValueType<void>::type reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
31542 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31543 
31544 
operator VkCommandBuffer() const31545     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT
31546     {
31547       return m_commandBuffer;
31548     }
31549 
operator bool() const31550     explicit operator bool() const VULKAN_HPP_NOEXCEPT
31551     {
31552       return m_commandBuffer != VK_NULL_HANDLE;
31553     }
31554 
operator !() const31555     bool operator!() const VULKAN_HPP_NOEXCEPT
31556     {
31557       return m_commandBuffer == VK_NULL_HANDLE;
31558     }
31559 
31560   private:
31561     VkCommandBuffer m_commandBuffer;
31562   };
31563   static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" );
31564 
31565   template <>
31566   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandBuffer>
31567   {
31568     using type = VULKAN_HPP_NAMESPACE::CommandBuffer;
31569   };
31570 
31571   template <>
31572   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer>
31573   {
31574     using Type = VULKAN_HPP_NAMESPACE::CommandBuffer;
31575   };
31576 
31577 
31578   template <>
31579   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer>
31580   {
31581     using Type = VULKAN_HPP_NAMESPACE::CommandBuffer;
31582   };
31583 
31584 
31585   template <>
31586   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CommandBuffer>
31587   {
31588     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
31589   };
31590 
31591   struct CommandBufferSubmitInfoKHR
31592   {
31593     static const bool allowDuplicate = false;
31594     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferSubmitInfoKHR;
31595 
31596 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferSubmitInfoKHRVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31597     VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfoKHR(VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
31598     : commandBuffer( commandBuffer_ ), deviceMask( deviceMask_ )
31599     {}
31600 
31601     VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfoKHR( CommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31602 
CommandBufferSubmitInfoKHRVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31603     CommandBufferSubmitInfoKHR( VkCommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
31604       : CommandBufferSubmitInfoKHR( *reinterpret_cast<CommandBufferSubmitInfoKHR const *>( &rhs ) )
31605     {}
31606 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31607 
31608     VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfoKHR & operator=( CommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31609 
operator =VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31610     CommandBufferSubmitInfoKHR & operator=( VkCommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
31611     {
31612       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR const *>( &rhs );
31613       return *this;
31614     }
31615 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31616     CommandBufferSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31617     {
31618       pNext = pNext_;
31619       return *this;
31620     }
31621 
setCommandBufferVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31622     CommandBufferSubmitInfoKHR & setCommandBuffer( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ ) VULKAN_HPP_NOEXCEPT
31623     {
31624       commandBuffer = commandBuffer_;
31625       return *this;
31626     }
31627 
setDeviceMaskVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31628     CommandBufferSubmitInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
31629     {
31630       deviceMask = deviceMask_;
31631       return *this;
31632     }
31633 
31634 
operator VkCommandBufferSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31635     operator VkCommandBufferSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
31636     {
31637       return *reinterpret_cast<const VkCommandBufferSubmitInfoKHR*>( this );
31638     }
31639 
operator VkCommandBufferSubmitInfoKHR&VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31640     operator VkCommandBufferSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
31641     {
31642       return *reinterpret_cast<VkCommandBufferSubmitInfoKHR*>( this );
31643     }
31644 
31645 
31646 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31647     auto operator<=>( CommandBufferSubmitInfoKHR const& ) const = default;
31648 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31649     bool operator==( CommandBufferSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
31650     {
31651       return ( sType == rhs.sType )
31652           && ( pNext == rhs.pNext )
31653           && ( commandBuffer == rhs.commandBuffer )
31654           && ( deviceMask == rhs.deviceMask );
31655     }
31656 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR31657     bool operator!=( CommandBufferSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
31658     {
31659       return !operator==( rhs );
31660     }
31661 #endif
31662 
31663 
31664 
31665   public:
31666     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferSubmitInfoKHR;
31667     const void* pNext = {};
31668     VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer = {};
31669     uint32_t deviceMask = {};
31670 
31671   };
31672   static_assert( sizeof( CommandBufferSubmitInfoKHR ) == sizeof( VkCommandBufferSubmitInfoKHR ), "struct and wrapper have different size!" );
31673   static_assert( std::is_standard_layout<CommandBufferSubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
31674 
31675   template <>
31676   struct CppType<StructureType, StructureType::eCommandBufferSubmitInfoKHR>
31677   {
31678     using Type = CommandBufferSubmitInfoKHR;
31679   };
31680 
31681   struct CommandPoolCreateInfo
31682   {
31683     static const bool allowDuplicate = false;
31684     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo;
31685 
31686 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31687     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo(VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}) VULKAN_HPP_NOEXCEPT
31688     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ )
31689     {}
31690 
31691     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31692 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31693     CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31694       : CommandPoolCreateInfo( *reinterpret_cast<CommandPoolCreateInfo const *>( &rhs ) )
31695     {}
31696 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31697 
31698     VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31699 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31700     CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31701     {
31702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const *>( &rhs );
31703       return *this;
31704     }
31705 
setPNextVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31706     CommandPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31707     {
31708       pNext = pNext_;
31709       return *this;
31710     }
31711 
setFlagsVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31712     CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
31713     {
31714       flags = flags_;
31715       return *this;
31716     }
31717 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31718     CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
31719     {
31720       queueFamilyIndex = queueFamilyIndex_;
31721       return *this;
31722     }
31723 
31724 
operator VkCommandPoolCreateInfo const&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31725     operator VkCommandPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
31726     {
31727       return *reinterpret_cast<const VkCommandPoolCreateInfo*>( this );
31728     }
31729 
operator VkCommandPoolCreateInfo&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31730     operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
31731     {
31732       return *reinterpret_cast<VkCommandPoolCreateInfo*>( this );
31733     }
31734 
31735 
31736 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31737     auto operator<=>( CommandPoolCreateInfo const& ) const = default;
31738 #else
operator ==VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31739     bool operator==( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31740     {
31741       return ( sType == rhs.sType )
31742           && ( pNext == rhs.pNext )
31743           && ( flags == rhs.flags )
31744           && ( queueFamilyIndex == rhs.queueFamilyIndex );
31745     }
31746 
operator !=VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo31747     bool operator!=( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31748     {
31749       return !operator==( rhs );
31750     }
31751 #endif
31752 
31753 
31754 
31755   public:
31756     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo;
31757     const void* pNext = {};
31758     VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {};
31759     uint32_t queueFamilyIndex = {};
31760 
31761   };
31762   static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" );
31763   static_assert( std::is_standard_layout<CommandPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
31764 
31765   template <>
31766   struct CppType<StructureType, StructureType::eCommandPoolCreateInfo>
31767   {
31768     using Type = CommandPoolCreateInfo;
31769   };
31770 
31771   class ShaderModule
31772   {
31773   public:
31774     using CType = VkShaderModule;
31775 
31776     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule;
31777     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
31778 
31779   public:
ShaderModule()31780     VULKAN_HPP_CONSTEXPR ShaderModule() VULKAN_HPP_NOEXCEPT
31781       : m_shaderModule(VK_NULL_HANDLE)
31782     {}
31783 
ShaderModule(std::nullptr_t)31784     VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31785       : m_shaderModule(VK_NULL_HANDLE)
31786     {}
31787 
ShaderModule(VkShaderModule shaderModule)31788     VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT
31789       : m_shaderModule( shaderModule )
31790     {}
31791 
31792 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkShaderModule shaderModule)31793     ShaderModule & operator=(VkShaderModule shaderModule) VULKAN_HPP_NOEXCEPT
31794     {
31795       m_shaderModule = shaderModule;
31796       return *this;
31797     }
31798 #endif
31799 
operator =(std::nullptr_t)31800     ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31801     {
31802       m_shaderModule = VK_NULL_HANDLE;
31803       return *this;
31804     }
31805 
31806 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31807     auto operator<=>( ShaderModule const& ) const = default;
31808 #else
operator ==(ShaderModule const & rhs) const31809     bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
31810     {
31811       return m_shaderModule == rhs.m_shaderModule;
31812     }
31813 
operator !=(ShaderModule const & rhs) const31814     bool operator!=(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
31815     {
31816       return m_shaderModule != rhs.m_shaderModule;
31817     }
31818 
operator <(ShaderModule const & rhs) const31819     bool operator<(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
31820     {
31821       return m_shaderModule < rhs.m_shaderModule;
31822     }
31823 #endif
31824 
operator VkShaderModule() const31825     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT
31826     {
31827       return m_shaderModule;
31828     }
31829 
operator bool() const31830     explicit operator bool() const VULKAN_HPP_NOEXCEPT
31831     {
31832       return m_shaderModule != VK_NULL_HANDLE;
31833     }
31834 
operator !() const31835     bool operator!() const VULKAN_HPP_NOEXCEPT
31836     {
31837       return m_shaderModule == VK_NULL_HANDLE;
31838     }
31839 
31840   private:
31841     VkShaderModule m_shaderModule;
31842   };
31843   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" );
31844 
31845   template <>
31846   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eShaderModule>
31847   {
31848     using type = VULKAN_HPP_NAMESPACE::ShaderModule;
31849   };
31850 
31851   template <>
31852   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule>
31853   {
31854     using Type = VULKAN_HPP_NAMESPACE::ShaderModule;
31855   };
31856 
31857 
31858   template <>
31859   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule>
31860   {
31861     using Type = VULKAN_HPP_NAMESPACE::ShaderModule;
31862   };
31863 
31864 
31865   template <>
31866   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ShaderModule>
31867   {
31868     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
31869   };
31870 
31871   struct SpecializationMapEntry
31872   {
31873 
31874 
31875 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry31876     VULKAN_HPP_CONSTEXPR SpecializationMapEntry(uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {}) VULKAN_HPP_NOEXCEPT
31877     : constantID( constantID_ ), offset( offset_ ), size( size_ )
31878     {}
31879 
31880     VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31881 
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry31882     SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
31883       : SpecializationMapEntry( *reinterpret_cast<SpecializationMapEntry const *>( &rhs ) )
31884     {}
31885 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31886 
31887     VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31888 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry31889     SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
31890     {
31891       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationMapEntry const *>( &rhs );
31892       return *this;
31893     }
31894 
setConstantIDVULKAN_HPP_NAMESPACE::SpecializationMapEntry31895     SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
31896     {
31897       constantID = constantID_;
31898       return *this;
31899     }
31900 
setOffsetVULKAN_HPP_NAMESPACE::SpecializationMapEntry31901     SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
31902     {
31903       offset = offset_;
31904       return *this;
31905     }
31906 
setSizeVULKAN_HPP_NAMESPACE::SpecializationMapEntry31907     SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT
31908     {
31909       size = size_;
31910       return *this;
31911     }
31912 
31913 
operator VkSpecializationMapEntry const&VULKAN_HPP_NAMESPACE::SpecializationMapEntry31914     operator VkSpecializationMapEntry const&() const VULKAN_HPP_NOEXCEPT
31915     {
31916       return *reinterpret_cast<const VkSpecializationMapEntry*>( this );
31917     }
31918 
operator VkSpecializationMapEntry&VULKAN_HPP_NAMESPACE::SpecializationMapEntry31919     operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
31920     {
31921       return *reinterpret_cast<VkSpecializationMapEntry*>( this );
31922     }
31923 
31924 
31925 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31926     auto operator<=>( SpecializationMapEntry const& ) const = default;
31927 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationMapEntry31928     bool operator==( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
31929     {
31930       return ( constantID == rhs.constantID )
31931           && ( offset == rhs.offset )
31932           && ( size == rhs.size );
31933     }
31934 
operator !=VULKAN_HPP_NAMESPACE::SpecializationMapEntry31935     bool operator!=( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
31936     {
31937       return !operator==( rhs );
31938     }
31939 #endif
31940 
31941 
31942 
31943   public:
31944     uint32_t constantID = {};
31945     uint32_t offset = {};
31946     size_t size = {};
31947 
31948   };
31949   static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" );
31950   static_assert( std::is_standard_layout<SpecializationMapEntry>::value, "struct wrapper is not a standard layout!" );
31951 
31952   struct SpecializationInfo
31953   {
31954 
31955 
31956 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo31957     VULKAN_HPP_CONSTEXPR SpecializationInfo(uint32_t mapEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ = {}, size_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT
31958     : mapEntryCount( mapEntryCount_ ), pMapEntries( pMapEntries_ ), dataSize( dataSize_ ), pData( pData_ )
31959     {}
31960 
31961     VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31962 
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo31963     SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31964       : SpecializationInfo( *reinterpret_cast<SpecializationInfo const *>( &rhs ) )
31965     {}
31966 
31967 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31968     template <typename T>
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo31969     SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ = {} )
31970     : mapEntryCount( static_cast<uint32_t>( mapEntries_.size() ) ), pMapEntries( mapEntries_.data() ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
31971     {}
31972 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31973 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31974 
31975     VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31976 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo31977     SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31978     {
31979       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationInfo const *>( &rhs );
31980       return *this;
31981     }
31982 
setMapEntryCountVULKAN_HPP_NAMESPACE::SpecializationInfo31983     SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
31984     {
31985       mapEntryCount = mapEntryCount_;
31986       return *this;
31987     }
31988 
setPMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo31989     SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ ) VULKAN_HPP_NOEXCEPT
31990     {
31991       pMapEntries = pMapEntries_;
31992       return *this;
31993     }
31994 
31995 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo31996     SpecializationInfo & setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_ ) VULKAN_HPP_NOEXCEPT
31997     {
31998       mapEntryCount = static_cast<uint32_t>( mapEntries_.size() );
31999       pMapEntries = mapEntries_.data();
32000       return *this;
32001     }
32002 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32003 
setDataSizeVULKAN_HPP_NAMESPACE::SpecializationInfo32004     SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
32005     {
32006       dataSize = dataSize_;
32007       return *this;
32008     }
32009 
setPDataVULKAN_HPP_NAMESPACE::SpecializationInfo32010     SpecializationInfo & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
32011     {
32012       pData = pData_;
32013       return *this;
32014     }
32015 
32016 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32017     template <typename T>
setDataVULKAN_HPP_NAMESPACE::SpecializationInfo32018     SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
32019     {
32020       dataSize = data_.size() * sizeof(T);
32021       pData = data_.data();
32022       return *this;
32023     }
32024 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32025 
32026 
operator VkSpecializationInfo const&VULKAN_HPP_NAMESPACE::SpecializationInfo32027     operator VkSpecializationInfo const&() const VULKAN_HPP_NOEXCEPT
32028     {
32029       return *reinterpret_cast<const VkSpecializationInfo*>( this );
32030     }
32031 
operator VkSpecializationInfo&VULKAN_HPP_NAMESPACE::SpecializationInfo32032     operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
32033     {
32034       return *reinterpret_cast<VkSpecializationInfo*>( this );
32035     }
32036 
32037 
32038 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32039     auto operator<=>( SpecializationInfo const& ) const = default;
32040 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationInfo32041     bool operator==( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32042     {
32043       return ( mapEntryCount == rhs.mapEntryCount )
32044           && ( pMapEntries == rhs.pMapEntries )
32045           && ( dataSize == rhs.dataSize )
32046           && ( pData == rhs.pData );
32047     }
32048 
operator !=VULKAN_HPP_NAMESPACE::SpecializationInfo32049     bool operator!=( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32050     {
32051       return !operator==( rhs );
32052     }
32053 #endif
32054 
32055 
32056 
32057   public:
32058     uint32_t mapEntryCount = {};
32059     const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries = {};
32060     size_t dataSize = {};
32061     const void* pData = {};
32062 
32063   };
32064   static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" );
32065   static_assert( std::is_standard_layout<SpecializationInfo>::value, "struct wrapper is not a standard layout!" );
32066 
32067   struct PipelineShaderStageCreateInfo
32068   {
32069     static const bool allowDuplicate = false;
32070     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo;
32071 
32072 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32073     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
32074     : flags( flags_ ), stage( stage_ ), module( module_ ), pName( pName_ ), pSpecializationInfo( pSpecializationInfo_ )
32075     {}
32076 
32077     VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32078 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32079     PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32080       : PipelineShaderStageCreateInfo( *reinterpret_cast<PipelineShaderStageCreateInfo const *>( &rhs ) )
32081     {}
32082 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32083 
32084     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32085 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32086     PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32087     {
32088       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const *>( &rhs );
32089       return *this;
32090     }
32091 
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32092     PipelineShaderStageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32093     {
32094       pNext = pNext_;
32095       return *this;
32096     }
32097 
setFlagsVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32098     PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
32099     {
32100       flags = flags_;
32101       return *this;
32102     }
32103 
setStageVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32104     PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
32105     {
32106       stage = stage_;
32107       return *this;
32108     }
32109 
setModuleVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32110     PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT
32111     {
32112       module = module_;
32113       return *this;
32114     }
32115 
setPNameVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32116     PipelineShaderStageCreateInfo & setPName( const char* pName_ ) VULKAN_HPP_NOEXCEPT
32117     {
32118       pName = pName_;
32119       return *this;
32120     }
32121 
setPSpecializationInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32122     PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
32123     {
32124       pSpecializationInfo = pSpecializationInfo_;
32125       return *this;
32126     }
32127 
32128 
operator VkPipelineShaderStageCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32129     operator VkPipelineShaderStageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
32130     {
32131       return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>( this );
32132     }
32133 
operator VkPipelineShaderStageCreateInfo&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32134     operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
32135     {
32136       return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>( this );
32137     }
32138 
32139 
32140 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32141     auto operator<=>( PipelineShaderStageCreateInfo const& ) const = default;
32142 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32143     bool operator==( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32144     {
32145       return ( sType == rhs.sType )
32146           && ( pNext == rhs.pNext )
32147           && ( flags == rhs.flags )
32148           && ( stage == rhs.stage )
32149           && ( module == rhs.module )
32150           && ( pName == rhs.pName )
32151           && ( pSpecializationInfo == rhs.pSpecializationInfo );
32152     }
32153 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo32154     bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32155     {
32156       return !operator==( rhs );
32157     }
32158 #endif
32159 
32160 
32161 
32162   public:
32163     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
32164     const void* pNext = {};
32165     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {};
32166     VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
32167     VULKAN_HPP_NAMESPACE::ShaderModule module = {};
32168     const char* pName = {};
32169     const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo = {};
32170 
32171   };
32172   static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" );
32173   static_assert( std::is_standard_layout<PipelineShaderStageCreateInfo>::value, "struct wrapper is not a standard layout!" );
32174 
32175   template <>
32176   struct CppType<StructureType, StructureType::ePipelineShaderStageCreateInfo>
32177   {
32178     using Type = PipelineShaderStageCreateInfo;
32179   };
32180 
32181   struct ComputePipelineCreateInfo
32182   {
32183     static const bool allowDuplicate = false;
32184     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo;
32185 
32186 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32187     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
32188     : flags( flags_ ), stage( stage_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
32189     {}
32190 
32191     VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32192 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32193     ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32194       : ComputePipelineCreateInfo( *reinterpret_cast<ComputePipelineCreateInfo const *>( &rhs ) )
32195     {}
32196 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32197 
32198     VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32199 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32200     ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32201     {
32202       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const *>( &rhs );
32203       return *this;
32204     }
32205 
setPNextVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32206     ComputePipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32207     {
32208       pNext = pNext_;
32209       return *this;
32210     }
32211 
setFlagsVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32212     ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
32213     {
32214       flags = flags_;
32215       return *this;
32216     }
32217 
setStageVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32218     ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT
32219     {
32220       stage = stage_;
32221       return *this;
32222     }
32223 
setLayoutVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32224     ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
32225     {
32226       layout = layout_;
32227       return *this;
32228     }
32229 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32230     ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
32231     {
32232       basePipelineHandle = basePipelineHandle_;
32233       return *this;
32234     }
32235 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32236     ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
32237     {
32238       basePipelineIndex = basePipelineIndex_;
32239       return *this;
32240     }
32241 
32242 
operator VkComputePipelineCreateInfo const&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32243     operator VkComputePipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
32244     {
32245       return *reinterpret_cast<const VkComputePipelineCreateInfo*>( this );
32246     }
32247 
operator VkComputePipelineCreateInfo&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32248     operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
32249     {
32250       return *reinterpret_cast<VkComputePipelineCreateInfo*>( this );
32251     }
32252 
32253 
32254 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32255     auto operator<=>( ComputePipelineCreateInfo const& ) const = default;
32256 #else
operator ==VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32257     bool operator==( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32258     {
32259       return ( sType == rhs.sType )
32260           && ( pNext == rhs.pNext )
32261           && ( flags == rhs.flags )
32262           && ( stage == rhs.stage )
32263           && ( layout == rhs.layout )
32264           && ( basePipelineHandle == rhs.basePipelineHandle )
32265           && ( basePipelineIndex == rhs.basePipelineIndex );
32266     }
32267 
operator !=VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo32268     bool operator!=( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32269     {
32270       return !operator==( rhs );
32271     }
32272 #endif
32273 
32274 
32275 
32276   public:
32277     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo;
32278     const void* pNext = {};
32279     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
32280     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {};
32281     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
32282     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
32283     int32_t basePipelineIndex = {};
32284 
32285   };
32286   static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" );
32287   static_assert( std::is_standard_layout<ComputePipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
32288 
32289   template <>
32290   struct CppType<StructureType, StructureType::eComputePipelineCreateInfo>
32291   {
32292     using Type = ComputePipelineCreateInfo;
32293   };
32294 
32295   struct ConformanceVersion
32296   {
32297 
32298 
32299 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion32300     VULKAN_HPP_CONSTEXPR ConformanceVersion(uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {}) VULKAN_HPP_NOEXCEPT
32301     : major( major_ ), minor( minor_ ), subminor( subminor_ ), patch( patch_ )
32302     {}
32303 
32304     VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32305 
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion32306     ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
32307       : ConformanceVersion( *reinterpret_cast<ConformanceVersion const *>( &rhs ) )
32308     {}
32309 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32310 
32311     VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32312 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion32313     ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
32314     {
32315       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConformanceVersion const *>( &rhs );
32316       return *this;
32317     }
32318 
setMajorVULKAN_HPP_NAMESPACE::ConformanceVersion32319     ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
32320     {
32321       major = major_;
32322       return *this;
32323     }
32324 
setMinorVULKAN_HPP_NAMESPACE::ConformanceVersion32325     ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT
32326     {
32327       minor = minor_;
32328       return *this;
32329     }
32330 
setSubminorVULKAN_HPP_NAMESPACE::ConformanceVersion32331     ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT
32332     {
32333       subminor = subminor_;
32334       return *this;
32335     }
32336 
setPatchVULKAN_HPP_NAMESPACE::ConformanceVersion32337     ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT
32338     {
32339       patch = patch_;
32340       return *this;
32341     }
32342 
32343 
operator VkConformanceVersion const&VULKAN_HPP_NAMESPACE::ConformanceVersion32344     operator VkConformanceVersion const&() const VULKAN_HPP_NOEXCEPT
32345     {
32346       return *reinterpret_cast<const VkConformanceVersion*>( this );
32347     }
32348 
operator VkConformanceVersion&VULKAN_HPP_NAMESPACE::ConformanceVersion32349     operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
32350     {
32351       return *reinterpret_cast<VkConformanceVersion*>( this );
32352     }
32353 
32354 
32355 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32356     auto operator<=>( ConformanceVersion const& ) const = default;
32357 #else
operator ==VULKAN_HPP_NAMESPACE::ConformanceVersion32358     bool operator==( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
32359     {
32360       return ( major == rhs.major )
32361           && ( minor == rhs.minor )
32362           && ( subminor == rhs.subminor )
32363           && ( patch == rhs.patch );
32364     }
32365 
operator !=VULKAN_HPP_NAMESPACE::ConformanceVersion32366     bool operator!=( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
32367     {
32368       return !operator==( rhs );
32369     }
32370 #endif
32371 
32372 
32373 
32374   public:
32375     uint8_t major = {};
32376     uint8_t minor = {};
32377     uint8_t subminor = {};
32378     uint8_t patch = {};
32379 
32380   };
32381   static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), "struct and wrapper have different size!" );
32382   static_assert( std::is_standard_layout<ConformanceVersion>::value, "struct wrapper is not a standard layout!" );
32383   using ConformanceVersionKHR = ConformanceVersion;
32384 
32385   struct CooperativeMatrixPropertiesNV
32386   {
32387     static const bool allowDuplicate = false;
32388     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV;
32389 
32390 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32391     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
32392     : MSize( MSize_ ), NSize( NSize_ ), KSize( KSize_ ), AType( AType_ ), BType( BType_ ), CType( CType_ ), DType( DType_ ), scope( scope_ )
32393     {}
32394 
32395     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32396 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32397     CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
32398       : CooperativeMatrixPropertiesNV( *reinterpret_cast<CooperativeMatrixPropertiesNV const *>( &rhs ) )
32399     {}
32400 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32401 
32402     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32403 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32404     CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
32405     {
32406       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const *>( &rhs );
32407       return *this;
32408     }
32409 
setPNextVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32410     CooperativeMatrixPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
32411     {
32412       pNext = pNext_;
32413       return *this;
32414     }
32415 
setMSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32416     CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
32417     {
32418       MSize = MSize_;
32419       return *this;
32420     }
32421 
setNSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32422     CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
32423     {
32424       NSize = NSize_;
32425       return *this;
32426     }
32427 
setKSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32428     CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
32429     {
32430       KSize = KSize_;
32431       return *this;
32432     }
32433 
setATypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32434     CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT
32435     {
32436       AType = AType_;
32437       return *this;
32438     }
32439 
setBTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32440     CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT
32441     {
32442       BType = BType_;
32443       return *this;
32444     }
32445 
setCTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32446     CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT
32447     {
32448       CType = CType_;
32449       return *this;
32450     }
32451 
setDTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32452     CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT
32453     {
32454       DType = DType_;
32455       return *this;
32456     }
32457 
setScopeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32458     CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT
32459     {
32460       scope = scope_;
32461       return *this;
32462     }
32463 
32464 
operator VkCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32465     operator VkCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
32466     {
32467       return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV*>( this );
32468     }
32469 
operator VkCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32470     operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
32471     {
32472       return *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( this );
32473     }
32474 
32475 
32476 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32477     auto operator<=>( CooperativeMatrixPropertiesNV const& ) const = default;
32478 #else
operator ==VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32479     bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32480     {
32481       return ( sType == rhs.sType )
32482           && ( pNext == rhs.pNext )
32483           && ( MSize == rhs.MSize )
32484           && ( NSize == rhs.NSize )
32485           && ( KSize == rhs.KSize )
32486           && ( AType == rhs.AType )
32487           && ( BType == rhs.BType )
32488           && ( CType == rhs.CType )
32489           && ( DType == rhs.DType )
32490           && ( scope == rhs.scope );
32491     }
32492 
operator !=VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV32493     bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32494     {
32495       return !operator==( rhs );
32496     }
32497 #endif
32498 
32499 
32500 
32501   public:
32502     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
32503     void* pNext = {};
32504     uint32_t MSize = {};
32505     uint32_t NSize = {};
32506     uint32_t KSize = {};
32507     VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
32508     VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
32509     VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
32510     VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
32511     VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice;
32512 
32513   };
32514   static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
32515   static_assert( std::is_standard_layout<CooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
32516 
32517   template <>
32518   struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesNV>
32519   {
32520     using Type = CooperativeMatrixPropertiesNV;
32521   };
32522 
32523   struct CopyCommandTransformInfoQCOM
32524   {
32525     static const bool allowDuplicate = false;
32526     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyCommandTransformInfoQCOM;
32527 
32528 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyCommandTransformInfoQCOMVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32529     VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT
32530     : transform( transform_ )
32531     {}
32532 
32533     VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32534 
CopyCommandTransformInfoQCOMVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32535     CopyCommandTransformInfoQCOM( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
32536       : CopyCommandTransformInfoQCOM( *reinterpret_cast<CopyCommandTransformInfoQCOM const *>( &rhs ) )
32537     {}
32538 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32539 
32540     VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & operator=( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32541 
operator =VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32542     CopyCommandTransformInfoQCOM & operator=( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
32543     {
32544       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM const *>( &rhs );
32545       return *this;
32546     }
32547 
setPNextVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32548     CopyCommandTransformInfoQCOM & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32549     {
32550       pNext = pNext_;
32551       return *this;
32552     }
32553 
setTransformVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32554     CopyCommandTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
32555     {
32556       transform = transform_;
32557       return *this;
32558     }
32559 
32560 
operator VkCopyCommandTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32561     operator VkCopyCommandTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
32562     {
32563       return *reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>( this );
32564     }
32565 
operator VkCopyCommandTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32566     operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
32567     {
32568       return *reinterpret_cast<VkCopyCommandTransformInfoQCOM*>( this );
32569     }
32570 
32571 
32572 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32573     auto operator<=>( CopyCommandTransformInfoQCOM const& ) const = default;
32574 #else
operator ==VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32575     bool operator==( CopyCommandTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
32576     {
32577       return ( sType == rhs.sType )
32578           && ( pNext == rhs.pNext )
32579           && ( transform == rhs.transform );
32580     }
32581 
operator !=VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM32582     bool operator!=( CopyCommandTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
32583     {
32584       return !operator==( rhs );
32585     }
32586 #endif
32587 
32588 
32589 
32590   public:
32591     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyCommandTransformInfoQCOM;
32592     const void* pNext = {};
32593     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
32594 
32595   };
32596   static_assert( sizeof( CopyCommandTransformInfoQCOM ) == sizeof( VkCopyCommandTransformInfoQCOM ), "struct and wrapper have different size!" );
32597   static_assert( std::is_standard_layout<CopyCommandTransformInfoQCOM>::value, "struct wrapper is not a standard layout!" );
32598 
32599   template <>
32600   struct CppType<StructureType, StructureType::eCopyCommandTransformInfoQCOM>
32601   {
32602     using Type = CopyCommandTransformInfoQCOM;
32603   };
32604 
32605   struct CopyDescriptorSet
32606   {
32607     static const bool allowDuplicate = false;
32608     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet;
32609 
32610 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet32611     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
32612     : srcSet( srcSet_ ), srcBinding( srcBinding_ ), srcArrayElement( srcArrayElement_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ )
32613     {}
32614 
32615     VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32616 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet32617     CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
32618       : CopyDescriptorSet( *reinterpret_cast<CopyDescriptorSet const *>( &rhs ) )
32619     {}
32620 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32621 
32622     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32623 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet32624     CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
32625     {
32626       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyDescriptorSet const *>( &rhs );
32627       return *this;
32628     }
32629 
setPNextVULKAN_HPP_NAMESPACE::CopyDescriptorSet32630     CopyDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32631     {
32632       pNext = pNext_;
32633       return *this;
32634     }
32635 
setSrcSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet32636     CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT
32637     {
32638       srcSet = srcSet_;
32639       return *this;
32640     }
32641 
setSrcBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet32642     CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT
32643     {
32644       srcBinding = srcBinding_;
32645       return *this;
32646     }
32647 
setSrcArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet32648     CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT
32649     {
32650       srcArrayElement = srcArrayElement_;
32651       return *this;
32652     }
32653 
setDstSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet32654     CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
32655     {
32656       dstSet = dstSet_;
32657       return *this;
32658     }
32659 
setDstBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet32660     CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
32661     {
32662       dstBinding = dstBinding_;
32663       return *this;
32664     }
32665 
setDstArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet32666     CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
32667     {
32668       dstArrayElement = dstArrayElement_;
32669       return *this;
32670     }
32671 
setDescriptorCountVULKAN_HPP_NAMESPACE::CopyDescriptorSet32672     CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
32673     {
32674       descriptorCount = descriptorCount_;
32675       return *this;
32676     }
32677 
32678 
operator VkCopyDescriptorSet const&VULKAN_HPP_NAMESPACE::CopyDescriptorSet32679     operator VkCopyDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
32680     {
32681       return *reinterpret_cast<const VkCopyDescriptorSet*>( this );
32682     }
32683 
operator VkCopyDescriptorSet&VULKAN_HPP_NAMESPACE::CopyDescriptorSet32684     operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
32685     {
32686       return *reinterpret_cast<VkCopyDescriptorSet*>( this );
32687     }
32688 
32689 
32690 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32691     auto operator<=>( CopyDescriptorSet const& ) const = default;
32692 #else
operator ==VULKAN_HPP_NAMESPACE::CopyDescriptorSet32693     bool operator==( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
32694     {
32695       return ( sType == rhs.sType )
32696           && ( pNext == rhs.pNext )
32697           && ( srcSet == rhs.srcSet )
32698           && ( srcBinding == rhs.srcBinding )
32699           && ( srcArrayElement == rhs.srcArrayElement )
32700           && ( dstSet == rhs.dstSet )
32701           && ( dstBinding == rhs.dstBinding )
32702           && ( dstArrayElement == rhs.dstArrayElement )
32703           && ( descriptorCount == rhs.descriptorCount );
32704     }
32705 
operator !=VULKAN_HPP_NAMESPACE::CopyDescriptorSet32706     bool operator!=( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
32707     {
32708       return !operator==( rhs );
32709     }
32710 #endif
32711 
32712 
32713 
32714   public:
32715     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet;
32716     const void* pNext = {};
32717     VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {};
32718     uint32_t srcBinding = {};
32719     uint32_t srcArrayElement = {};
32720     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
32721     uint32_t dstBinding = {};
32722     uint32_t dstArrayElement = {};
32723     uint32_t descriptorCount = {};
32724 
32725   };
32726   static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" );
32727   static_assert( std::is_standard_layout<CopyDescriptorSet>::value, "struct wrapper is not a standard layout!" );
32728 
32729   template <>
32730   struct CppType<StructureType, StructureType::eCopyDescriptorSet>
32731   {
32732     using Type = CopyDescriptorSet;
32733   };
32734 
32735 #ifdef VK_USE_PLATFORM_WIN32_KHR
32736   struct D3D12FenceSubmitInfoKHR
32737   {
32738     static const bool allowDuplicate = false;
32739     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR;
32740 
32741 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32742     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR(uint32_t waitSemaphoreValuesCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValuesCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT
32743     : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
32744     {}
32745 
32746     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32747 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32748     D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
32749       : D3D12FenceSubmitInfoKHR( *reinterpret_cast<D3D12FenceSubmitInfoKHR const *>( &rhs ) )
32750     {}
32751 
32752 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32753     D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {} )
32754     : waitSemaphoreValuesCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValuesCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
32755     {}
32756 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32757 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32758 
32759     VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32760 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32761     D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
32762     {
32763       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const *>( &rhs );
32764       return *this;
32765     }
32766 
setPNextVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32767     D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32768     {
32769       pNext = pNext_;
32770       return *this;
32771     }
32772 
setWaitSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32773     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
32774     {
32775       waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
32776       return *this;
32777     }
32778 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32779     D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
32780     {
32781       pWaitSemaphoreValues = pWaitSemaphoreValues_;
32782       return *this;
32783     }
32784 
32785 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32786     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
32787     {
32788       waitSemaphoreValuesCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
32789       pWaitSemaphoreValues = waitSemaphoreValues_.data();
32790       return *this;
32791     }
32792 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32793 
setSignalSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32794     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
32795     {
32796       signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
32797       return *this;
32798     }
32799 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32800     D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
32801     {
32802       pSignalSemaphoreValues = pSignalSemaphoreValues_;
32803       return *this;
32804     }
32805 
32806 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32807     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
32808     {
32809       signalSemaphoreValuesCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
32810       pSignalSemaphoreValues = signalSemaphoreValues_.data();
32811       return *this;
32812     }
32813 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32814 
32815 
operator VkD3D12FenceSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32816     operator VkD3D12FenceSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
32817     {
32818       return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>( this );
32819     }
32820 
operator VkD3D12FenceSubmitInfoKHR&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32821     operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
32822     {
32823       return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>( this );
32824     }
32825 
32826 
32827 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32828     auto operator<=>( D3D12FenceSubmitInfoKHR const& ) const = default;
32829 #else
operator ==VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32830     bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
32831     {
32832       return ( sType == rhs.sType )
32833           && ( pNext == rhs.pNext )
32834           && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount )
32835           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
32836           && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount )
32837           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
32838     }
32839 
operator !=VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR32840     bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
32841     {
32842       return !operator==( rhs );
32843     }
32844 #endif
32845 
32846 
32847 
32848   public:
32849     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
32850     const void* pNext = {};
32851     uint32_t waitSemaphoreValuesCount = {};
32852     const uint64_t* pWaitSemaphoreValues = {};
32853     uint32_t signalSemaphoreValuesCount = {};
32854     const uint64_t* pSignalSemaphoreValues = {};
32855 
32856   };
32857   static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" );
32858   static_assert( std::is_standard_layout<D3D12FenceSubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
32859 
32860   template <>
32861   struct CppType<StructureType, StructureType::eD3D12FenceSubmitInfoKHR>
32862   {
32863     using Type = D3D12FenceSubmitInfoKHR;
32864   };
32865 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
32866 
32867   struct DebugMarkerObjectNameInfoEXT
32868   {
32869     static const bool allowDuplicate = false;
32870     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT;
32871 
32872 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32873     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT
32874     : objectType( objectType_ ), object( object_ ), pObjectName( pObjectName_ )
32875     {}
32876 
32877     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32878 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32879     DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32880       : DebugMarkerObjectNameInfoEXT( *reinterpret_cast<DebugMarkerObjectNameInfoEXT const *>( &rhs ) )
32881     {}
32882 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32883 
32884     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32885 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32886     DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32887     {
32888       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const *>( &rhs );
32889       return *this;
32890     }
32891 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32892     DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32893     {
32894       pNext = pNext_;
32895       return *this;
32896     }
32897 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32898     DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
32899     {
32900       objectType = objectType_;
32901       return *this;
32902     }
32903 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32904     DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
32905     {
32906       object = object_;
32907       return *this;
32908     }
32909 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32910     DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
32911     {
32912       pObjectName = pObjectName_;
32913       return *this;
32914     }
32915 
32916 
operator VkDebugMarkerObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32917     operator VkDebugMarkerObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
32918     {
32919       return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( this );
32920     }
32921 
operator VkDebugMarkerObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32922     operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
32923     {
32924       return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>( this );
32925     }
32926 
32927 
32928 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32929     auto operator<=>( DebugMarkerObjectNameInfoEXT const& ) const = default;
32930 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32931     bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
32932     {
32933       return ( sType == rhs.sType )
32934           && ( pNext == rhs.pNext )
32935           && ( objectType == rhs.objectType )
32936           && ( object == rhs.object )
32937           && ( pObjectName == rhs.pObjectName );
32938     }
32939 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT32940     bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
32941     {
32942       return !operator==( rhs );
32943     }
32944 #endif
32945 
32946 
32947 
32948   public:
32949     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
32950     const void* pNext = {};
32951     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
32952     uint64_t object = {};
32953     const char* pObjectName = {};
32954 
32955   };
32956   static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" );
32957   static_assert( std::is_standard_layout<DebugMarkerObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
32958 
32959   template <>
32960   struct CppType<StructureType, StructureType::eDebugMarkerObjectNameInfoEXT>
32961   {
32962     using Type = DebugMarkerObjectNameInfoEXT;
32963   };
32964 
32965   struct DebugMarkerObjectTagInfoEXT
32966   {
32967     static const bool allowDuplicate = false;
32968     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT;
32969 
32970 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT32971     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
32972     : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
32973     {}
32974 
32975     VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32976 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT32977     DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32978       : DebugMarkerObjectTagInfoEXT( *reinterpret_cast<DebugMarkerObjectTagInfoEXT const *>( &rhs ) )
32979     {}
32980 
32981 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32982     template <typename T>
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT32983     DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ )
32984     : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
32985     {}
32986 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32987 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32988 
32989     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32990 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT32991     DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32992     {
32993       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const *>( &rhs );
32994       return *this;
32995     }
32996 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT32997     DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32998     {
32999       pNext = pNext_;
33000       return *this;
33001     }
33002 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33003     DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
33004     {
33005       objectType = objectType_;
33006       return *this;
33007     }
33008 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33009     DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
33010     {
33011       object = object_;
33012       return *this;
33013     }
33014 
setTagNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33015     DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
33016     {
33017       tagName = tagName_;
33018       return *this;
33019     }
33020 
setTagSizeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33021     DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
33022     {
33023       tagSize = tagSize_;
33024       return *this;
33025     }
33026 
setPTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33027     DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
33028     {
33029       pTag = pTag_;
33030       return *this;
33031     }
33032 
33033 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33034     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33035     DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
33036     {
33037       tagSize = tag_.size() * sizeof(T);
33038       pTag = tag_.data();
33039       return *this;
33040     }
33041 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33042 
33043 
operator VkDebugMarkerObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33044     operator VkDebugMarkerObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
33045     {
33046       return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( this );
33047     }
33048 
operator VkDebugMarkerObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33049     operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
33050     {
33051       return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>( this );
33052     }
33053 
33054 
33055 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33056     auto operator<=>( DebugMarkerObjectTagInfoEXT const& ) const = default;
33057 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33058     bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33059     {
33060       return ( sType == rhs.sType )
33061           && ( pNext == rhs.pNext )
33062           && ( objectType == rhs.objectType )
33063           && ( object == rhs.object )
33064           && ( tagName == rhs.tagName )
33065           && ( tagSize == rhs.tagSize )
33066           && ( pTag == rhs.pTag );
33067     }
33068 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT33069     bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33070     {
33071       return !operator==( rhs );
33072     }
33073 #endif
33074 
33075 
33076 
33077   public:
33078     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
33079     const void* pNext = {};
33080     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
33081     uint64_t object = {};
33082     uint64_t tagName = {};
33083     size_t tagSize = {};
33084     const void* pTag = {};
33085 
33086   };
33087   static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" );
33088   static_assert( std::is_standard_layout<DebugMarkerObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
33089 
33090   template <>
33091   struct CppType<StructureType, StructureType::eDebugMarkerObjectTagInfoEXT>
33092   {
33093     using Type = DebugMarkerObjectTagInfoEXT;
33094   };
33095 
33096   struct DebugReportCallbackCreateInfoEXT
33097   {
33098     static const bool allowDuplicate = false;
33099     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT;
33100 
33101 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33102     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
33103     : flags( flags_ ), pfnCallback( pfnCallback_ ), pUserData( pUserData_ )
33104     {}
33105 
33106     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33107 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33108     DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33109       : DebugReportCallbackCreateInfoEXT( *reinterpret_cast<DebugReportCallbackCreateInfoEXT const *>( &rhs ) )
33110     {}
33111 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33112 
33113     VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33114 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33115     DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33116     {
33117       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const *>( &rhs );
33118       return *this;
33119     }
33120 
setPNextVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33121     DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33122     {
33123       pNext = pNext_;
33124       return *this;
33125     }
33126 
setFlagsVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33127     DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
33128     {
33129       flags = flags_;
33130       return *this;
33131     }
33132 
setPfnCallbackVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33133     DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT
33134     {
33135       pfnCallback = pfnCallback_;
33136       return *this;
33137     }
33138 
setPUserDataVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33139     DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
33140     {
33141       pUserData = pUserData_;
33142       return *this;
33143     }
33144 
33145 
operator VkDebugReportCallbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33146     operator VkDebugReportCallbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
33147     {
33148       return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( this );
33149     }
33150 
operator VkDebugReportCallbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33151     operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
33152     {
33153       return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>( this );
33154     }
33155 
33156 
33157 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33158     auto operator<=>( DebugReportCallbackCreateInfoEXT const& ) const = default;
33159 #else
operator ==VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33160     bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33161     {
33162       return ( sType == rhs.sType )
33163           && ( pNext == rhs.pNext )
33164           && ( flags == rhs.flags )
33165           && ( pfnCallback == rhs.pfnCallback )
33166           && ( pUserData == rhs.pUserData );
33167     }
33168 
operator !=VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT33169     bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33170     {
33171       return !operator==( rhs );
33172     }
33173 #endif
33174 
33175 
33176 
33177   public:
33178     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
33179     const void* pNext = {};
33180     VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {};
33181     PFN_vkDebugReportCallbackEXT pfnCallback = {};
33182     void* pUserData = {};
33183 
33184   };
33185   static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" );
33186   static_assert( std::is_standard_layout<DebugReportCallbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
33187 
33188   template <>
33189   struct CppType<StructureType, StructureType::eDebugReportCallbackCreateInfoEXT>
33190   {
33191     using Type = DebugReportCallbackCreateInfoEXT;
33192   };
33193 
33194   struct DebugUtilsObjectNameInfoEXT
33195   {
33196     static const bool allowDuplicate = false;
33197     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT;
33198 
33199 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33200     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT
33201     : objectType( objectType_ ), objectHandle( objectHandle_ ), pObjectName( pObjectName_ )
33202     {}
33203 
33204     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33205 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33206     DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33207       : DebugUtilsObjectNameInfoEXT( *reinterpret_cast<DebugUtilsObjectNameInfoEXT const *>( &rhs ) )
33208     {}
33209 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33210 
33211     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33212 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33213     DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33214     {
33215       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const *>( &rhs );
33216       return *this;
33217     }
33218 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33219     DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33220     {
33221       pNext = pNext_;
33222       return *this;
33223     }
33224 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33225     DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
33226     {
33227       objectType = objectType_;
33228       return *this;
33229     }
33230 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33231     DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
33232     {
33233       objectHandle = objectHandle_;
33234       return *this;
33235     }
33236 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33237     DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
33238     {
33239       pObjectName = pObjectName_;
33240       return *this;
33241     }
33242 
33243 
operator VkDebugUtilsObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33244     operator VkDebugUtilsObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
33245     {
33246       return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( this );
33247     }
33248 
operator VkDebugUtilsObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33249     operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
33250     {
33251       return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>( this );
33252     }
33253 
33254 
33255 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33256     auto operator<=>( DebugUtilsObjectNameInfoEXT const& ) const = default;
33257 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33258     bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33259     {
33260       return ( sType == rhs.sType )
33261           && ( pNext == rhs.pNext )
33262           && ( objectType == rhs.objectType )
33263           && ( objectHandle == rhs.objectHandle )
33264           && ( pObjectName == rhs.pObjectName );
33265     }
33266 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT33267     bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33268     {
33269       return !operator==( rhs );
33270     }
33271 #endif
33272 
33273 
33274 
33275   public:
33276     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
33277     const void* pNext = {};
33278     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
33279     uint64_t objectHandle = {};
33280     const char* pObjectName = {};
33281 
33282   };
33283   static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" );
33284   static_assert( std::is_standard_layout<DebugUtilsObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
33285 
33286   template <>
33287   struct CppType<StructureType, StructureType::eDebugUtilsObjectNameInfoEXT>
33288   {
33289     using Type = DebugUtilsObjectNameInfoEXT;
33290   };
33291 
33292   struct DebugUtilsMessengerCallbackDataEXT
33293   {
33294     static const bool allowDuplicate = false;
33295     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
33296 
33297 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33298     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
33299     : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( queueLabelCount_ ), pQueueLabels( pQueueLabels_ ), cmdBufLabelCount( cmdBufLabelCount_ ), pCmdBufLabels( pCmdBufLabels_ ), objectCount( objectCount_ ), pObjects( pObjects_ )
33300     {}
33301 
33302     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33303 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33304     DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33305       : DebugUtilsMessengerCallbackDataEXT( *reinterpret_cast<DebugUtilsMessengerCallbackDataEXT const *>( &rhs ) )
33306     {}
33307 
33308 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33309     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_ = {} )
33310     : 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() )
33311     {}
33312 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33313 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33314 
33315     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33316 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33317     DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33318     {
33319       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const *>( &rhs );
33320       return *this;
33321     }
33322 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33323     DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33324     {
33325       pNext = pNext_;
33326       return *this;
33327     }
33328 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33329     DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
33330     {
33331       flags = flags_;
33332       return *this;
33333     }
33334 
setPMessageIdNameVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33335     DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ ) VULKAN_HPP_NOEXCEPT
33336     {
33337       pMessageIdName = pMessageIdName_;
33338       return *this;
33339     }
33340 
setMessageIdNumberVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33341     DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT
33342     {
33343       messageIdNumber = messageIdNumber_;
33344       return *this;
33345     }
33346 
setPMessageVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33347     DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ ) VULKAN_HPP_NOEXCEPT
33348     {
33349       pMessage = pMessage_;
33350       return *this;
33351     }
33352 
setQueueLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33353     DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT
33354     {
33355       queueLabelCount = queueLabelCount_;
33356       return *this;
33357     }
33358 
setPQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33359     DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
33360     {
33361       pQueueLabels = pQueueLabels_;
33362       return *this;
33363     }
33364 
33365 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33366     DebugUtilsMessengerCallbackDataEXT & setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_ ) VULKAN_HPP_NOEXCEPT
33367     {
33368       queueLabelCount = static_cast<uint32_t>( queueLabels_.size() );
33369       pQueueLabels = queueLabels_.data();
33370       return *this;
33371     }
33372 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33373 
setCmdBufLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33374     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
33375     {
33376       cmdBufLabelCount = cmdBufLabelCount_;
33377       return *this;
33378     }
33379 
setPCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33380     DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
33381     {
33382       pCmdBufLabels = pCmdBufLabels_;
33383       return *this;
33384     }
33385 
33386 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33387     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
33388     {
33389       cmdBufLabelCount = static_cast<uint32_t>( cmdBufLabels_.size() );
33390       pCmdBufLabels = cmdBufLabels_.data();
33391       return *this;
33392     }
33393 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33394 
setObjectCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33395     DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
33396     {
33397       objectCount = objectCount_;
33398       return *this;
33399     }
33400 
setPObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33401     DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ ) VULKAN_HPP_NOEXCEPT
33402     {
33403       pObjects = pObjects_;
33404       return *this;
33405     }
33406 
33407 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33408     DebugUtilsMessengerCallbackDataEXT & setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ ) VULKAN_HPP_NOEXCEPT
33409     {
33410       objectCount = static_cast<uint32_t>( objects_.size() );
33411       pObjects = objects_.data();
33412       return *this;
33413     }
33414 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33415 
33416 
operator VkDebugUtilsMessengerCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33417     operator VkDebugUtilsMessengerCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
33418     {
33419       return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( this );
33420     }
33421 
operator VkDebugUtilsMessengerCallbackDataEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33422     operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
33423     {
33424       return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>( this );
33425     }
33426 
33427 
33428 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33429     auto operator<=>( DebugUtilsMessengerCallbackDataEXT const& ) const = default;
33430 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33431     bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33432     {
33433       return ( sType == rhs.sType )
33434           && ( pNext == rhs.pNext )
33435           && ( flags == rhs.flags )
33436           && ( pMessageIdName == rhs.pMessageIdName )
33437           && ( messageIdNumber == rhs.messageIdNumber )
33438           && ( pMessage == rhs.pMessage )
33439           && ( queueLabelCount == rhs.queueLabelCount )
33440           && ( pQueueLabels == rhs.pQueueLabels )
33441           && ( cmdBufLabelCount == rhs.cmdBufLabelCount )
33442           && ( pCmdBufLabels == rhs.pCmdBufLabels )
33443           && ( objectCount == rhs.objectCount )
33444           && ( pObjects == rhs.pObjects );
33445     }
33446 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT33447     bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33448     {
33449       return !operator==( rhs );
33450     }
33451 #endif
33452 
33453 
33454 
33455   public:
33456     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
33457     const void* pNext = {};
33458     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {};
33459     const char* pMessageIdName = {};
33460     int32_t messageIdNumber = {};
33461     const char* pMessage = {};
33462     uint32_t queueLabelCount = {};
33463     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels = {};
33464     uint32_t cmdBufLabelCount = {};
33465     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels = {};
33466     uint32_t objectCount = {};
33467     const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects = {};
33468 
33469   };
33470   static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" );
33471   static_assert( std::is_standard_layout<DebugUtilsMessengerCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
33472 
33473   template <>
33474   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCallbackDataEXT>
33475   {
33476     using Type = DebugUtilsMessengerCallbackDataEXT;
33477   };
33478 
33479   struct DebugUtilsMessengerCreateInfoEXT
33480   {
33481     static const bool allowDuplicate = true;
33482     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
33483 
33484 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33485     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
33486     : flags( flags_ ), messageSeverity( messageSeverity_ ), messageType( messageType_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
33487     {}
33488 
33489     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33490 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33491     DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33492       : DebugUtilsMessengerCreateInfoEXT( *reinterpret_cast<DebugUtilsMessengerCreateInfoEXT const *>( &rhs ) )
33493     {}
33494 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33495 
33496     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33497 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33498     DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33499     {
33500       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const *>( &rhs );
33501       return *this;
33502     }
33503 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33504     DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33505     {
33506       pNext = pNext_;
33507       return *this;
33508     }
33509 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33510     DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
33511     {
33512       flags = flags_;
33513       return *this;
33514     }
33515 
setMessageSeverityVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33516     DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
33517     {
33518       messageSeverity = messageSeverity_;
33519       return *this;
33520     }
33521 
setMessageTypeVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33522     DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
33523     {
33524       messageType = messageType_;
33525       return *this;
33526     }
33527 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33528     DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
33529     {
33530       pfnUserCallback = pfnUserCallback_;
33531       return *this;
33532     }
33533 
setPUserDataVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33534     DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
33535     {
33536       pUserData = pUserData_;
33537       return *this;
33538     }
33539 
33540 
operator VkDebugUtilsMessengerCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33541     operator VkDebugUtilsMessengerCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
33542     {
33543       return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( this );
33544     }
33545 
operator VkDebugUtilsMessengerCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33546     operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
33547     {
33548       return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>( this );
33549     }
33550 
33551 
33552 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33553     auto operator<=>( DebugUtilsMessengerCreateInfoEXT const& ) const = default;
33554 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33555     bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33556     {
33557       return ( sType == rhs.sType )
33558           && ( pNext == rhs.pNext )
33559           && ( flags == rhs.flags )
33560           && ( messageSeverity == rhs.messageSeverity )
33561           && ( messageType == rhs.messageType )
33562           && ( pfnUserCallback == rhs.pfnUserCallback )
33563           && ( pUserData == rhs.pUserData );
33564     }
33565 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT33566     bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33567     {
33568       return !operator==( rhs );
33569     }
33570 #endif
33571 
33572 
33573 
33574   public:
33575     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
33576     const void* pNext = {};
33577     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {};
33578     VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {};
33579     VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {};
33580     PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {};
33581     void* pUserData = {};
33582 
33583   };
33584   static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" );
33585   static_assert( std::is_standard_layout<DebugUtilsMessengerCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
33586 
33587   template <>
33588   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCreateInfoEXT>
33589   {
33590     using Type = DebugUtilsMessengerCreateInfoEXT;
33591   };
33592 
33593   struct DebugUtilsObjectTagInfoEXT
33594   {
33595     static const bool allowDuplicate = false;
33596     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT;
33597 
33598 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33599     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
33600     : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
33601     {}
33602 
33603     VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33604 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33605     DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33606       : DebugUtilsObjectTagInfoEXT( *reinterpret_cast<DebugUtilsObjectTagInfoEXT const *>( &rhs ) )
33607     {}
33608 
33609 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33610     template <typename T>
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33611     DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ )
33612     : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
33613     {}
33614 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33615 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33616 
33617     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33618 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33619     DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33620     {
33621       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const *>( &rhs );
33622       return *this;
33623     }
33624 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33625     DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33626     {
33627       pNext = pNext_;
33628       return *this;
33629     }
33630 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33631     DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
33632     {
33633       objectType = objectType_;
33634       return *this;
33635     }
33636 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33637     DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
33638     {
33639       objectHandle = objectHandle_;
33640       return *this;
33641     }
33642 
setTagNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33643     DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
33644     {
33645       tagName = tagName_;
33646       return *this;
33647     }
33648 
setTagSizeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33649     DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
33650     {
33651       tagSize = tagSize_;
33652       return *this;
33653     }
33654 
setPTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33655     DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
33656     {
33657       pTag = pTag_;
33658       return *this;
33659     }
33660 
33661 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33662     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33663     DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
33664     {
33665       tagSize = tag_.size() * sizeof(T);
33666       pTag = tag_.data();
33667       return *this;
33668     }
33669 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33670 
33671 
operator VkDebugUtilsObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33672     operator VkDebugUtilsObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
33673     {
33674       return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( this );
33675     }
33676 
operator VkDebugUtilsObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33677     operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
33678     {
33679       return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>( this );
33680     }
33681 
33682 
33683 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33684     auto operator<=>( DebugUtilsObjectTagInfoEXT const& ) const = default;
33685 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33686     bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33687     {
33688       return ( sType == rhs.sType )
33689           && ( pNext == rhs.pNext )
33690           && ( objectType == rhs.objectType )
33691           && ( objectHandle == rhs.objectHandle )
33692           && ( tagName == rhs.tagName )
33693           && ( tagSize == rhs.tagSize )
33694           && ( pTag == rhs.pTag );
33695     }
33696 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT33697     bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
33698     {
33699       return !operator==( rhs );
33700     }
33701 #endif
33702 
33703 
33704 
33705   public:
33706     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
33707     const void* pNext = {};
33708     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
33709     uint64_t objectHandle = {};
33710     uint64_t tagName = {};
33711     size_t tagSize = {};
33712     const void* pTag = {};
33713 
33714   };
33715   static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" );
33716   static_assert( std::is_standard_layout<DebugUtilsObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
33717 
33718   template <>
33719   struct CppType<StructureType, StructureType::eDebugUtilsObjectTagInfoEXT>
33720   {
33721     using Type = DebugUtilsObjectTagInfoEXT;
33722   };
33723 
33724   struct DedicatedAllocationBufferCreateInfoNV
33725   {
33726     static const bool allowDuplicate = false;
33727     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
33728 
33729 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33730     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
33731     : dedicatedAllocation( dedicatedAllocation_ )
33732     {}
33733 
33734     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33735 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33736     DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33737       : DedicatedAllocationBufferCreateInfoNV( *reinterpret_cast<DedicatedAllocationBufferCreateInfoNV const *>( &rhs ) )
33738     {}
33739 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33740 
33741     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33742 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33743     DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33744     {
33745       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const *>( &rhs );
33746       return *this;
33747     }
33748 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33749     DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33750     {
33751       pNext = pNext_;
33752       return *this;
33753     }
33754 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33755     DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
33756     {
33757       dedicatedAllocation = dedicatedAllocation_;
33758       return *this;
33759     }
33760 
33761 
operator VkDedicatedAllocationBufferCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33762     operator VkDedicatedAllocationBufferCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
33763     {
33764       return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>( this );
33765     }
33766 
operator VkDedicatedAllocationBufferCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33767     operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
33768     {
33769       return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>( this );
33770     }
33771 
33772 
33773 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33774     auto operator<=>( DedicatedAllocationBufferCreateInfoNV const& ) const = default;
33775 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33776     bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33777     {
33778       return ( sType == rhs.sType )
33779           && ( pNext == rhs.pNext )
33780           && ( dedicatedAllocation == rhs.dedicatedAllocation );
33781     }
33782 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV33783     bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33784     {
33785       return !operator==( rhs );
33786     }
33787 #endif
33788 
33789 
33790 
33791   public:
33792     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
33793     const void* pNext = {};
33794     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
33795 
33796   };
33797   static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" );
33798   static_assert( std::is_standard_layout<DedicatedAllocationBufferCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
33799 
33800   template <>
33801   struct CppType<StructureType, StructureType::eDedicatedAllocationBufferCreateInfoNV>
33802   {
33803     using Type = DedicatedAllocationBufferCreateInfoNV;
33804   };
33805 
33806   struct DedicatedAllocationImageCreateInfoNV
33807   {
33808     static const bool allowDuplicate = false;
33809     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV;
33810 
33811 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33812     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
33813     : dedicatedAllocation( dedicatedAllocation_ )
33814     {}
33815 
33816     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33817 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33818     DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33819       : DedicatedAllocationImageCreateInfoNV( *reinterpret_cast<DedicatedAllocationImageCreateInfoNV const *>( &rhs ) )
33820     {}
33821 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33822 
33823     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33824 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33825     DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33826     {
33827       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const *>( &rhs );
33828       return *this;
33829     }
33830 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33831     DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33832     {
33833       pNext = pNext_;
33834       return *this;
33835     }
33836 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33837     DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
33838     {
33839       dedicatedAllocation = dedicatedAllocation_;
33840       return *this;
33841     }
33842 
33843 
operator VkDedicatedAllocationImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33844     operator VkDedicatedAllocationImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
33845     {
33846       return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>( this );
33847     }
33848 
operator VkDedicatedAllocationImageCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33849     operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
33850     {
33851       return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>( this );
33852     }
33853 
33854 
33855 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33856     auto operator<=>( DedicatedAllocationImageCreateInfoNV const& ) const = default;
33857 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33858     bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33859     {
33860       return ( sType == rhs.sType )
33861           && ( pNext == rhs.pNext )
33862           && ( dedicatedAllocation == rhs.dedicatedAllocation );
33863     }
33864 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV33865     bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33866     {
33867       return !operator==( rhs );
33868     }
33869 #endif
33870 
33871 
33872 
33873   public:
33874     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
33875     const void* pNext = {};
33876     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
33877 
33878   };
33879   static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" );
33880   static_assert( std::is_standard_layout<DedicatedAllocationImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
33881 
33882   template <>
33883   struct CppType<StructureType, StructureType::eDedicatedAllocationImageCreateInfoNV>
33884   {
33885     using Type = DedicatedAllocationImageCreateInfoNV;
33886   };
33887 
33888   struct DedicatedAllocationMemoryAllocateInfoNV
33889   {
33890     static const bool allowDuplicate = false;
33891     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
33892 
33893 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33894     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
33895     : image( image_ ), buffer( buffer_ )
33896     {}
33897 
33898     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33899 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33900     DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33901       : DedicatedAllocationMemoryAllocateInfoNV( *reinterpret_cast<DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs ) )
33902     {}
33903 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33904 
33905     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33906 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33907     DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33908     {
33909       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs );
33910       return *this;
33911     }
33912 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33913     DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33914     {
33915       pNext = pNext_;
33916       return *this;
33917     }
33918 
setImageVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33919     DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
33920     {
33921       image = image_;
33922       return *this;
33923     }
33924 
setBufferVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33925     DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
33926     {
33927       buffer = buffer_;
33928       return *this;
33929     }
33930 
33931 
operator VkDedicatedAllocationMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33932     operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
33933     {
33934       return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
33935     }
33936 
operator VkDedicatedAllocationMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33937     operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
33938     {
33939       return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
33940     }
33941 
33942 
33943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33944     auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const& ) const = default;
33945 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33946     bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33947     {
33948       return ( sType == rhs.sType )
33949           && ( pNext == rhs.pNext )
33950           && ( image == rhs.image )
33951           && ( buffer == rhs.buffer );
33952     }
33953 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV33954     bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33955     {
33956       return !operator==( rhs );
33957     }
33958 #endif
33959 
33960 
33961 
33962   public:
33963     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
33964     const void* pNext = {};
33965     VULKAN_HPP_NAMESPACE::Image image = {};
33966     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
33967 
33968   };
33969   static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
33970   static_assert( std::is_standard_layout<DedicatedAllocationMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
33971 
33972   template <>
33973   struct CppType<StructureType, StructureType::eDedicatedAllocationMemoryAllocateInfoNV>
33974   {
33975     using Type = DedicatedAllocationMemoryAllocateInfoNV;
33976   };
33977 
33978   struct DescriptorPoolSize
33979   {
33980 
33981 
33982 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize33983     VULKAN_HPP_CONSTEXPR DescriptorPoolSize(VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
33984     : type( type_ ), descriptorCount( descriptorCount_ )
33985     {}
33986 
33987     VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33988 
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize33989     DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
33990       : DescriptorPoolSize( *reinterpret_cast<DescriptorPoolSize const *>( &rhs ) )
33991     {}
33992 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33993 
33994     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33995 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize33996     DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
33997     {
33998       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolSize const *>( &rhs );
33999       return *this;
34000     }
34001 
setTypeVULKAN_HPP_NAMESPACE::DescriptorPoolSize34002     DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
34003     {
34004       type = type_;
34005       return *this;
34006     }
34007 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorPoolSize34008     DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
34009     {
34010       descriptorCount = descriptorCount_;
34011       return *this;
34012     }
34013 
34014 
operator VkDescriptorPoolSize const&VULKAN_HPP_NAMESPACE::DescriptorPoolSize34015     operator VkDescriptorPoolSize const&() const VULKAN_HPP_NOEXCEPT
34016     {
34017       return *reinterpret_cast<const VkDescriptorPoolSize*>( this );
34018     }
34019 
operator VkDescriptorPoolSize&VULKAN_HPP_NAMESPACE::DescriptorPoolSize34020     operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
34021     {
34022       return *reinterpret_cast<VkDescriptorPoolSize*>( this );
34023     }
34024 
34025 
34026 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34027     auto operator<=>( DescriptorPoolSize const& ) const = default;
34028 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolSize34029     bool operator==( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
34030     {
34031       return ( type == rhs.type )
34032           && ( descriptorCount == rhs.descriptorCount );
34033     }
34034 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolSize34035     bool operator!=( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
34036     {
34037       return !operator==( rhs );
34038     }
34039 #endif
34040 
34041 
34042 
34043   public:
34044     VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
34045     uint32_t descriptorCount = {};
34046 
34047   };
34048   static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" );
34049   static_assert( std::is_standard_layout<DescriptorPoolSize>::value, "struct wrapper is not a standard layout!" );
34050 
34051   struct DescriptorPoolCreateInfo
34052   {
34053     static const bool allowDuplicate = false;
34054     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo;
34055 
34056 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34057     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, uint32_t maxSets_ = {}, uint32_t poolSizeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ = {}) VULKAN_HPP_NOEXCEPT
34058     : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( poolSizeCount_ ), pPoolSizes( pPoolSizes_ )
34059     {}
34060 
34061     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34062 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34063     DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34064       : DescriptorPoolCreateInfo( *reinterpret_cast<DescriptorPoolCreateInfo const *>( &rhs ) )
34065     {}
34066 
34067 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34068     DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_, uint32_t maxSets_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ )
34069     : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast<uint32_t>( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() )
34070     {}
34071 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34072 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34073 
34074     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34075 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34076     DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34077     {
34078       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const *>( &rhs );
34079       return *this;
34080     }
34081 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34082     DescriptorPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34083     {
34084       pNext = pNext_;
34085       return *this;
34086     }
34087 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34088     DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
34089     {
34090       flags = flags_;
34091       return *this;
34092     }
34093 
setMaxSetsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34094     DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT
34095     {
34096       maxSets = maxSets_;
34097       return *this;
34098     }
34099 
setPoolSizeCountVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34100     DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT
34101     {
34102       poolSizeCount = poolSizeCount_;
34103       return *this;
34104     }
34105 
setPPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34106     DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ ) VULKAN_HPP_NOEXCEPT
34107     {
34108       pPoolSizes = pPoolSizes_;
34109       return *this;
34110     }
34111 
34112 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34113     DescriptorPoolCreateInfo & setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ ) VULKAN_HPP_NOEXCEPT
34114     {
34115       poolSizeCount = static_cast<uint32_t>( poolSizes_.size() );
34116       pPoolSizes = poolSizes_.data();
34117       return *this;
34118     }
34119 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34120 
34121 
operator VkDescriptorPoolCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34122     operator VkDescriptorPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
34123     {
34124       return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>( this );
34125     }
34126 
operator VkDescriptorPoolCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34127     operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
34128     {
34129       return *reinterpret_cast<VkDescriptorPoolCreateInfo*>( this );
34130     }
34131 
34132 
34133 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34134     auto operator<=>( DescriptorPoolCreateInfo const& ) const = default;
34135 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34136     bool operator==( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34137     {
34138       return ( sType == rhs.sType )
34139           && ( pNext == rhs.pNext )
34140           && ( flags == rhs.flags )
34141           && ( maxSets == rhs.maxSets )
34142           && ( poolSizeCount == rhs.poolSizeCount )
34143           && ( pPoolSizes == rhs.pPoolSizes );
34144     }
34145 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo34146     bool operator!=( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34147     {
34148       return !operator==( rhs );
34149     }
34150 #endif
34151 
34152 
34153 
34154   public:
34155     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
34156     const void* pNext = {};
34157     VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {};
34158     uint32_t maxSets = {};
34159     uint32_t poolSizeCount = {};
34160     const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes = {};
34161 
34162   };
34163   static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" );
34164   static_assert( std::is_standard_layout<DescriptorPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
34165 
34166   template <>
34167   struct CppType<StructureType, StructureType::eDescriptorPoolCreateInfo>
34168   {
34169     using Type = DescriptorPoolCreateInfo;
34170   };
34171 
34172   struct DescriptorPoolInlineUniformBlockCreateInfoEXT
34173   {
34174     static const bool allowDuplicate = false;
34175     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
34176 
34177 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34178     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT(uint32_t maxInlineUniformBlockBindings_ = {}) VULKAN_HPP_NOEXCEPT
34179     : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
34180     {}
34181 
34182     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34183 
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34184     DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
34185       : DescriptorPoolInlineUniformBlockCreateInfoEXT( *reinterpret_cast<DescriptorPoolInlineUniformBlockCreateInfoEXT const *>( &rhs ) )
34186     {}
34187 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34188 
34189     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34190 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34191     DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
34192     {
34193       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT const *>( &rhs );
34194       return *this;
34195     }
34196 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34197     DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34198     {
34199       pNext = pNext_;
34200       return *this;
34201     }
34202 
setMaxInlineUniformBlockBindingsVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34203     DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
34204     {
34205       maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
34206       return *this;
34207     }
34208 
34209 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34210     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
34211     {
34212       return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
34213     }
34214 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34215     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
34216     {
34217       return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
34218     }
34219 
34220 
34221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34222     auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfoEXT const& ) const = default;
34223 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34224     bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
34225     {
34226       return ( sType == rhs.sType )
34227           && ( pNext == rhs.pNext )
34228           && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
34229     }
34230 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT34231     bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
34232     {
34233       return !operator==( rhs );
34234     }
34235 #endif
34236 
34237 
34238 
34239   public:
34240     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
34241     const void* pNext = {};
34242     uint32_t maxInlineUniformBlockBindings = {};
34243 
34244   };
34245   static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" );
34246   static_assert( std::is_standard_layout<DescriptorPoolInlineUniformBlockCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
34247 
34248   template <>
34249   struct CppType<StructureType, StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT>
34250   {
34251     using Type = DescriptorPoolInlineUniformBlockCreateInfoEXT;
34252   };
34253 
34254   class DescriptorPool
34255   {
34256   public:
34257     using CType = VkDescriptorPool;
34258 
34259     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool;
34260     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
34261 
34262   public:
DescriptorPool()34263     VULKAN_HPP_CONSTEXPR DescriptorPool() VULKAN_HPP_NOEXCEPT
34264       : m_descriptorPool(VK_NULL_HANDLE)
34265     {}
34266 
DescriptorPool(std::nullptr_t)34267     VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
34268       : m_descriptorPool(VK_NULL_HANDLE)
34269     {}
34270 
DescriptorPool(VkDescriptorPool descriptorPool)34271     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT
34272       : m_descriptorPool( descriptorPool )
34273     {}
34274 
34275 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorPool descriptorPool)34276     DescriptorPool & operator=(VkDescriptorPool descriptorPool) VULKAN_HPP_NOEXCEPT
34277     {
34278       m_descriptorPool = descriptorPool;
34279       return *this;
34280     }
34281 #endif
34282 
operator =(std::nullptr_t)34283     DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
34284     {
34285       m_descriptorPool = VK_NULL_HANDLE;
34286       return *this;
34287     }
34288 
34289 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34290     auto operator<=>( DescriptorPool const& ) const = default;
34291 #else
operator ==(DescriptorPool const & rhs) const34292     bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
34293     {
34294       return m_descriptorPool == rhs.m_descriptorPool;
34295     }
34296 
operator !=(DescriptorPool const & rhs) const34297     bool operator!=(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
34298     {
34299       return m_descriptorPool != rhs.m_descriptorPool;
34300     }
34301 
operator <(DescriptorPool const & rhs) const34302     bool operator<(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
34303     {
34304       return m_descriptorPool < rhs.m_descriptorPool;
34305     }
34306 #endif
34307 
operator VkDescriptorPool() const34308     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT
34309     {
34310       return m_descriptorPool;
34311     }
34312 
operator bool() const34313     explicit operator bool() const VULKAN_HPP_NOEXCEPT
34314     {
34315       return m_descriptorPool != VK_NULL_HANDLE;
34316     }
34317 
operator !() const34318     bool operator!() const VULKAN_HPP_NOEXCEPT
34319     {
34320       return m_descriptorPool == VK_NULL_HANDLE;
34321     }
34322 
34323   private:
34324     VkDescriptorPool m_descriptorPool;
34325   };
34326   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" );
34327 
34328   template <>
34329   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorPool>
34330   {
34331     using type = VULKAN_HPP_NAMESPACE::DescriptorPool;
34332   };
34333 
34334   template <>
34335   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool>
34336   {
34337     using Type = VULKAN_HPP_NAMESPACE::DescriptorPool;
34338   };
34339 
34340 
34341   template <>
34342   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool>
34343   {
34344     using Type = VULKAN_HPP_NAMESPACE::DescriptorPool;
34345   };
34346 
34347 
34348   template <>
34349   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorPool>
34350   {
34351     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
34352   };
34353 
34354   class DescriptorSetLayout
34355   {
34356   public:
34357     using CType = VkDescriptorSetLayout;
34358 
34359     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout;
34360     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
34361 
34362   public:
DescriptorSetLayout()34363     VULKAN_HPP_CONSTEXPR DescriptorSetLayout() VULKAN_HPP_NOEXCEPT
34364       : m_descriptorSetLayout(VK_NULL_HANDLE)
34365     {}
34366 
DescriptorSetLayout(std::nullptr_t)34367     VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
34368       : m_descriptorSetLayout(VK_NULL_HANDLE)
34369     {}
34370 
DescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout)34371     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT
34372       : m_descriptorSetLayout( descriptorSetLayout )
34373     {}
34374 
34375 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSetLayout descriptorSetLayout)34376     DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout) VULKAN_HPP_NOEXCEPT
34377     {
34378       m_descriptorSetLayout = descriptorSetLayout;
34379       return *this;
34380     }
34381 #endif
34382 
operator =(std::nullptr_t)34383     DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
34384     {
34385       m_descriptorSetLayout = VK_NULL_HANDLE;
34386       return *this;
34387     }
34388 
34389 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34390     auto operator<=>( DescriptorSetLayout const& ) const = default;
34391 #else
operator ==(DescriptorSetLayout const & rhs) const34392     bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
34393     {
34394       return m_descriptorSetLayout == rhs.m_descriptorSetLayout;
34395     }
34396 
operator !=(DescriptorSetLayout const & rhs) const34397     bool operator!=(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
34398     {
34399       return m_descriptorSetLayout != rhs.m_descriptorSetLayout;
34400     }
34401 
operator <(DescriptorSetLayout const & rhs) const34402     bool operator<(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
34403     {
34404       return m_descriptorSetLayout < rhs.m_descriptorSetLayout;
34405     }
34406 #endif
34407 
operator VkDescriptorSetLayout() const34408     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT
34409     {
34410       return m_descriptorSetLayout;
34411     }
34412 
operator bool() const34413     explicit operator bool() const VULKAN_HPP_NOEXCEPT
34414     {
34415       return m_descriptorSetLayout != VK_NULL_HANDLE;
34416     }
34417 
operator !() const34418     bool operator!() const VULKAN_HPP_NOEXCEPT
34419     {
34420       return m_descriptorSetLayout == VK_NULL_HANDLE;
34421     }
34422 
34423   private:
34424     VkDescriptorSetLayout m_descriptorSetLayout;
34425   };
34426   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" );
34427 
34428   template <>
34429   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSetLayout>
34430   {
34431     using type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
34432   };
34433 
34434   template <>
34435   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout>
34436   {
34437     using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
34438   };
34439 
34440 
34441   template <>
34442   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout>
34443   {
34444     using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
34445   };
34446 
34447 
34448   template <>
34449   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
34450   {
34451     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
34452   };
34453 
34454   struct DescriptorSetAllocateInfo
34455   {
34456     static const bool allowDuplicate = false;
34457     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo;
34458 
34459 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34460     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, uint32_t descriptorSetCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}) VULKAN_HPP_NOEXCEPT
34461     : descriptorPool( descriptorPool_ ), descriptorSetCount( descriptorSetCount_ ), pSetLayouts( pSetLayouts_ )
34462     {}
34463 
34464     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34465 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34466     DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34467       : DescriptorSetAllocateInfo( *reinterpret_cast<DescriptorSetAllocateInfo const *>( &rhs ) )
34468     {}
34469 
34470 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34471     DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ )
34472     : descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() )
34473     {}
34474 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34475 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34476 
34477     VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34478 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34479     DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34480     {
34481       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const *>( &rhs );
34482       return *this;
34483     }
34484 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34485     DescriptorSetAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34486     {
34487       pNext = pNext_;
34488       return *this;
34489     }
34490 
setDescriptorPoolVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34491     DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT
34492     {
34493       descriptorPool = descriptorPool_;
34494       return *this;
34495     }
34496 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34497     DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
34498     {
34499       descriptorSetCount = descriptorSetCount_;
34500       return *this;
34501     }
34502 
setPSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34503     DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
34504     {
34505       pSetLayouts = pSetLayouts_;
34506       return *this;
34507     }
34508 
34509 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34510     DescriptorSetAllocateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
34511     {
34512       descriptorSetCount = static_cast<uint32_t>( setLayouts_.size() );
34513       pSetLayouts = setLayouts_.data();
34514       return *this;
34515     }
34516 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34517 
34518 
operator VkDescriptorSetAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34519     operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
34520     {
34521       return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>( this );
34522     }
34523 
operator VkDescriptorSetAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34524     operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
34525     {
34526       return *reinterpret_cast<VkDescriptorSetAllocateInfo*>( this );
34527     }
34528 
34529 
34530 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34531     auto operator<=>( DescriptorSetAllocateInfo const& ) const = default;
34532 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34533     bool operator==( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34534     {
34535       return ( sType == rhs.sType )
34536           && ( pNext == rhs.pNext )
34537           && ( descriptorPool == rhs.descriptorPool )
34538           && ( descriptorSetCount == rhs.descriptorSetCount )
34539           && ( pSetLayouts == rhs.pSetLayouts );
34540     }
34541 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo34542     bool operator!=( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34543     {
34544       return !operator==( rhs );
34545     }
34546 #endif
34547 
34548 
34549 
34550   public:
34551     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
34552     const void* pNext = {};
34553     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {};
34554     uint32_t descriptorSetCount = {};
34555     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
34556 
34557   };
34558   static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" );
34559   static_assert( std::is_standard_layout<DescriptorSetAllocateInfo>::value, "struct wrapper is not a standard layout!" );
34560 
34561   template <>
34562   struct CppType<StructureType, StructureType::eDescriptorSetAllocateInfo>
34563   {
34564     using Type = DescriptorSetAllocateInfo;
34565   };
34566 
34567   struct DescriptorSetLayoutBinding
34568   {
34569 
34570 
34571 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34572     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
34573     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( descriptorCount_ ), stageFlags( stageFlags_ ), pImmutableSamplers( pImmutableSamplers_ )
34574     {}
34575 
34576     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34577 
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34578     DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
34579       : DescriptorSetLayoutBinding( *reinterpret_cast<DescriptorSetLayoutBinding const *>( &rhs ) )
34580     {}
34581 
34582 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34583     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_ )
34584     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( static_cast<uint32_t>( immutableSamplers_.size() ) ), stageFlags( stageFlags_ ), pImmutableSamplers( immutableSamplers_.data() )
34585     {}
34586 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34587 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34588 
34589     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34590 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34591     DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
34592     {
34593       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const *>( &rhs );
34594       return *this;
34595     }
34596 
setBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34597     DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
34598     {
34599       binding = binding_;
34600       return *this;
34601     }
34602 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34603     DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
34604     {
34605       descriptorType = descriptorType_;
34606       return *this;
34607     }
34608 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34609     DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
34610     {
34611       descriptorCount = descriptorCount_;
34612       return *this;
34613     }
34614 
setStageFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34615     DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
34616     {
34617       stageFlags = stageFlags_;
34618       return *this;
34619     }
34620 
setPImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34621     DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT
34622     {
34623       pImmutableSamplers = pImmutableSamplers_;
34624       return *this;
34625     }
34626 
34627 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34628     DescriptorSetLayoutBinding & setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT
34629     {
34630       descriptorCount = static_cast<uint32_t>( immutableSamplers_.size() );
34631       pImmutableSamplers = immutableSamplers_.data();
34632       return *this;
34633     }
34634 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34635 
34636 
operator VkDescriptorSetLayoutBinding const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34637     operator VkDescriptorSetLayoutBinding const&() const VULKAN_HPP_NOEXCEPT
34638     {
34639       return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>( this );
34640     }
34641 
operator VkDescriptorSetLayoutBinding&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34642     operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
34643     {
34644       return *reinterpret_cast<VkDescriptorSetLayoutBinding*>( this );
34645     }
34646 
34647 
34648 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34649     auto operator<=>( DescriptorSetLayoutBinding const& ) const = default;
34650 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34651     bool operator==( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
34652     {
34653       return ( binding == rhs.binding )
34654           && ( descriptorType == rhs.descriptorType )
34655           && ( descriptorCount == rhs.descriptorCount )
34656           && ( stageFlags == rhs.stageFlags )
34657           && ( pImmutableSamplers == rhs.pImmutableSamplers );
34658     }
34659 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding34660     bool operator!=( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
34661     {
34662       return !operator==( rhs );
34663     }
34664 #endif
34665 
34666 
34667 
34668   public:
34669     uint32_t binding = {};
34670     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
34671     uint32_t descriptorCount = {};
34672     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
34673     const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers = {};
34674 
34675   };
34676   static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" );
34677   static_assert( std::is_standard_layout<DescriptorSetLayoutBinding>::value, "struct wrapper is not a standard layout!" );
34678 
34679   struct DescriptorSetLayoutBindingFlagsCreateInfo
34680   {
34681     static const bool allowDuplicate = false;
34682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
34683 
34684 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34685     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo(uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ = {}) VULKAN_HPP_NOEXCEPT
34686     : bindingCount( bindingCount_ ), pBindingFlags( pBindingFlags_ )
34687     {}
34688 
34689     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34690 
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34691     DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34692       : DescriptorSetLayoutBindingFlagsCreateInfo( *reinterpret_cast<DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs ) )
34693     {}
34694 
34695 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34696     DescriptorSetLayoutBindingFlagsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ )
34697     : bindingCount( static_cast<uint32_t>( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() )
34698     {}
34699 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34700 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34701 
34702     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34703 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34704     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34705     {
34706       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs );
34707       return *this;
34708     }
34709 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34710     DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34711     {
34712       pNext = pNext_;
34713       return *this;
34714     }
34715 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34716     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
34717     {
34718       bindingCount = bindingCount_;
34719       return *this;
34720     }
34721 
setPBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34722     DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
34723     {
34724       pBindingFlags = pBindingFlags_;
34725       return *this;
34726     }
34727 
34728 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34729     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT
34730     {
34731       bindingCount = static_cast<uint32_t>( bindingFlags_.size() );
34732       pBindingFlags = bindingFlags_.data();
34733       return *this;
34734     }
34735 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34736 
34737 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34738     operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
34739     {
34740       return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
34741     }
34742 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34743     operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
34744     {
34745       return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
34746     }
34747 
34748 
34749 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34750     auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const& ) const = default;
34751 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34752     bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34753     {
34754       return ( sType == rhs.sType )
34755           && ( pNext == rhs.pNext )
34756           && ( bindingCount == rhs.bindingCount )
34757           && ( pBindingFlags == rhs.pBindingFlags );
34758     }
34759 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo34760     bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34761     {
34762       return !operator==( rhs );
34763     }
34764 #endif
34765 
34766 
34767 
34768   public:
34769     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
34770     const void* pNext = {};
34771     uint32_t bindingCount = {};
34772     const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags = {};
34773 
34774   };
34775   static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), "struct and wrapper have different size!" );
34776   static_assert( std::is_standard_layout<DescriptorSetLayoutBindingFlagsCreateInfo>::value, "struct wrapper is not a standard layout!" );
34777 
34778   template <>
34779   struct CppType<StructureType, StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo>
34780   {
34781     using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
34782   };
34783   using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
34784 
34785   struct DescriptorSetLayoutCreateInfo
34786   {
34787     static const bool allowDuplicate = false;
34788     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo;
34789 
34790 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34791     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ = {}) VULKAN_HPP_NOEXCEPT
34792     : flags( flags_ ), bindingCount( bindingCount_ ), pBindings( pBindings_ )
34793     {}
34794 
34795     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34796 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34797     DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34798       : DescriptorSetLayoutCreateInfo( *reinterpret_cast<DescriptorSetLayoutCreateInfo const *>( &rhs ) )
34799     {}
34800 
34801 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34802     DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ )
34803     : flags( flags_ ), bindingCount( static_cast<uint32_t>( bindings_.size() ) ), pBindings( bindings_.data() )
34804     {}
34805 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34806 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34807 
34808     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34809 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34810     DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34811     {
34812       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const *>( &rhs );
34813       return *this;
34814     }
34815 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34816     DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34817     {
34818       pNext = pNext_;
34819       return *this;
34820     }
34821 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34822     DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
34823     {
34824       flags = flags_;
34825       return *this;
34826     }
34827 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34828     DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
34829     {
34830       bindingCount = bindingCount_;
34831       return *this;
34832     }
34833 
setPBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34834     DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ ) VULKAN_HPP_NOEXCEPT
34835     {
34836       pBindings = pBindings_;
34837       return *this;
34838     }
34839 
34840 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34841     DescriptorSetLayoutCreateInfo & setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ ) VULKAN_HPP_NOEXCEPT
34842     {
34843       bindingCount = static_cast<uint32_t>( bindings_.size() );
34844       pBindings = bindings_.data();
34845       return *this;
34846     }
34847 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34848 
34849 
operator VkDescriptorSetLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34850     operator VkDescriptorSetLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
34851     {
34852       return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( this );
34853     }
34854 
operator VkDescriptorSetLayoutCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34855     operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
34856     {
34857       return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>( this );
34858     }
34859 
34860 
34861 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34862     auto operator<=>( DescriptorSetLayoutCreateInfo const& ) const = default;
34863 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34864     bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34865     {
34866       return ( sType == rhs.sType )
34867           && ( pNext == rhs.pNext )
34868           && ( flags == rhs.flags )
34869           && ( bindingCount == rhs.bindingCount )
34870           && ( pBindings == rhs.pBindings );
34871     }
34872 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo34873     bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
34874     {
34875       return !operator==( rhs );
34876     }
34877 #endif
34878 
34879 
34880 
34881   public:
34882     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
34883     const void* pNext = {};
34884     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {};
34885     uint32_t bindingCount = {};
34886     const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings = {};
34887 
34888   };
34889   static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" );
34890   static_assert( std::is_standard_layout<DescriptorSetLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
34891 
34892   template <>
34893   struct CppType<StructureType, StructureType::eDescriptorSetLayoutCreateInfo>
34894   {
34895     using Type = DescriptorSetLayoutCreateInfo;
34896   };
34897 
34898   struct DescriptorSetLayoutSupport
34899   {
34900     static const bool allowDuplicate = false;
34901     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport;
34902 
34903 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport34904     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport(VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}) VULKAN_HPP_NOEXCEPT
34905     : supported( supported_ )
34906     {}
34907 
34908     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34909 
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport34910     DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
34911       : DescriptorSetLayoutSupport( *reinterpret_cast<DescriptorSetLayoutSupport const *>( &rhs ) )
34912     {}
34913 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34914 
34915     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34916 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport34917     DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
34918     {
34919       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const *>( &rhs );
34920       return *this;
34921     }
34922 
34923 
operator VkDescriptorSetLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport34924     operator VkDescriptorSetLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
34925     {
34926       return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>( this );
34927     }
34928 
operator VkDescriptorSetLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport34929     operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
34930     {
34931       return *reinterpret_cast<VkDescriptorSetLayoutSupport*>( this );
34932     }
34933 
34934 
34935 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34936     auto operator<=>( DescriptorSetLayoutSupport const& ) const = default;
34937 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport34938     bool operator==( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
34939     {
34940       return ( sType == rhs.sType )
34941           && ( pNext == rhs.pNext )
34942           && ( supported == rhs.supported );
34943     }
34944 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport34945     bool operator!=( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
34946     {
34947       return !operator==( rhs );
34948     }
34949 #endif
34950 
34951 
34952 
34953   public:
34954     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
34955     void* pNext = {};
34956     VULKAN_HPP_NAMESPACE::Bool32 supported = {};
34957 
34958   };
34959   static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" );
34960   static_assert( std::is_standard_layout<DescriptorSetLayoutSupport>::value, "struct wrapper is not a standard layout!" );
34961 
34962   template <>
34963   struct CppType<StructureType, StructureType::eDescriptorSetLayoutSupport>
34964   {
34965     using Type = DescriptorSetLayoutSupport;
34966   };
34967   using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
34968 
34969   struct DescriptorSetVariableDescriptorCountAllocateInfo
34970   {
34971     static const bool allowDuplicate = false;
34972     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
34973 
34974 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo34975     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo(uint32_t descriptorSetCount_ = {}, const uint32_t* pDescriptorCounts_ = {}) VULKAN_HPP_NOEXCEPT
34976     : descriptorSetCount( descriptorSetCount_ ), pDescriptorCounts( pDescriptorCounts_ )
34977     {}
34978 
34979     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34980 
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo34981     DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34982       : DescriptorSetVariableDescriptorCountAllocateInfo( *reinterpret_cast<DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs ) )
34983     {}
34984 
34985 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo34986     DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ )
34987     : descriptorSetCount( static_cast<uint32_t>( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() )
34988     {}
34989 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34990 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34991 
34992     VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34993 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo34994     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34995     {
34996       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs );
34997       return *this;
34998     }
34999 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo35000     DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35001     {
35002       pNext = pNext_;
35003       return *this;
35004     }
35005 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo35006     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
35007     {
35008       descriptorSetCount = descriptorSetCount_;
35009       return *this;
35010     }
35011 
setPDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo35012     DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT
35013     {
35014       pDescriptorCounts = pDescriptorCounts_;
35015       return *this;
35016     }
35017 
35018 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo35019     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT
35020     {
35021       descriptorSetCount = static_cast<uint32_t>( descriptorCounts_.size() );
35022       pDescriptorCounts = descriptorCounts_.data();
35023       return *this;
35024     }
35025 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
35026 
35027 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo35028     operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
35029     {
35030       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
35031     }
35032 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo35033     operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
35034     {
35035       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
35036     }
35037 
35038 
35039 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35040     auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const& ) const = default;
35041 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo35042     bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35043     {
35044       return ( sType == rhs.sType )
35045           && ( pNext == rhs.pNext )
35046           && ( descriptorSetCount == rhs.descriptorSetCount )
35047           && ( pDescriptorCounts == rhs.pDescriptorCounts );
35048     }
35049 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo35050     bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35051     {
35052       return !operator==( rhs );
35053     }
35054 #endif
35055 
35056 
35057 
35058   public:
35059     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
35060     const void* pNext = {};
35061     uint32_t descriptorSetCount = {};
35062     const uint32_t* pDescriptorCounts = {};
35063 
35064   };
35065   static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), "struct and wrapper have different size!" );
35066   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountAllocateInfo>::value, "struct wrapper is not a standard layout!" );
35067 
35068   template <>
35069   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo>
35070   {
35071     using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
35072   };
35073   using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
35074 
35075   struct DescriptorSetVariableDescriptorCountLayoutSupport
35076   {
35077     static const bool allowDuplicate = false;
35078     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
35079 
35080 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport35081     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport(uint32_t maxVariableDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
35082     : maxVariableDescriptorCount( maxVariableDescriptorCount_ )
35083     {}
35084 
35085     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35086 
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport35087     DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
35088       : DescriptorSetVariableDescriptorCountLayoutSupport( *reinterpret_cast<DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs ) )
35089     {}
35090 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35091 
35092     VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountLayoutSupport & operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35093 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport35094     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
35095     {
35096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs );
35097       return *this;
35098     }
35099 
35100 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport35101     operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
35102     {
35103       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
35104     }
35105 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport35106     operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
35107     {
35108       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
35109     }
35110 
35111 
35112 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35113     auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const& ) const = default;
35114 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport35115     bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
35116     {
35117       return ( sType == rhs.sType )
35118           && ( pNext == rhs.pNext )
35119           && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
35120     }
35121 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport35122     bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
35123     {
35124       return !operator==( rhs );
35125     }
35126 #endif
35127 
35128 
35129 
35130   public:
35131     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
35132     void* pNext = {};
35133     uint32_t maxVariableDescriptorCount = {};
35134 
35135   };
35136   static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), "struct and wrapper have different size!" );
35137   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountLayoutSupport>::value, "struct wrapper is not a standard layout!" );
35138 
35139   template <>
35140   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport>
35141   {
35142     using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
35143   };
35144   using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
35145 
35146   struct DescriptorUpdateTemplateEntry
35147   {
35148 
35149 
35150 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35151     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
35152     : dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), offset( offset_ ), stride( stride_ )
35153     {}
35154 
35155     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35156 
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35157     DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
35158       : DescriptorUpdateTemplateEntry( *reinterpret_cast<DescriptorUpdateTemplateEntry const *>( &rhs ) )
35159     {}
35160 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35161 
35162     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35163 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35164     DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
35165     {
35166       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const *>( &rhs );
35167       return *this;
35168     }
35169 
setDstBindingVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35170     DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
35171     {
35172       dstBinding = dstBinding_;
35173       return *this;
35174     }
35175 
setDstArrayElementVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35176     DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
35177     {
35178       dstArrayElement = dstArrayElement_;
35179       return *this;
35180     }
35181 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35182     DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
35183     {
35184       descriptorCount = descriptorCount_;
35185       return *this;
35186     }
35187 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35188     DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
35189     {
35190       descriptorType = descriptorType_;
35191       return *this;
35192     }
35193 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35194     DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT
35195     {
35196       offset = offset_;
35197       return *this;
35198     }
35199 
setStrideVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35200     DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT
35201     {
35202       stride = stride_;
35203       return *this;
35204     }
35205 
35206 
operator VkDescriptorUpdateTemplateEntry const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35207     operator VkDescriptorUpdateTemplateEntry const&() const VULKAN_HPP_NOEXCEPT
35208     {
35209       return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>( this );
35210     }
35211 
operator VkDescriptorUpdateTemplateEntry&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35212     operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
35213     {
35214       return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>( this );
35215     }
35216 
35217 
35218 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35219     auto operator<=>( DescriptorUpdateTemplateEntry const& ) const = default;
35220 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35221     bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
35222     {
35223       return ( dstBinding == rhs.dstBinding )
35224           && ( dstArrayElement == rhs.dstArrayElement )
35225           && ( descriptorCount == rhs.descriptorCount )
35226           && ( descriptorType == rhs.descriptorType )
35227           && ( offset == rhs.offset )
35228           && ( stride == rhs.stride );
35229     }
35230 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry35231     bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
35232     {
35233       return !operator==( rhs );
35234     }
35235 #endif
35236 
35237 
35238 
35239   public:
35240     uint32_t dstBinding = {};
35241     uint32_t dstArrayElement = {};
35242     uint32_t descriptorCount = {};
35243     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
35244     size_t offset = {};
35245     size_t stride = {};
35246 
35247   };
35248   static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" );
35249   static_assert( std::is_standard_layout<DescriptorUpdateTemplateEntry>::value, "struct wrapper is not a standard layout!" );
35250   using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
35251 
35252   struct DescriptorUpdateTemplateCreateInfo
35253   {
35254     static const bool allowDuplicate = false;
35255     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo;
35256 
35257 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35258     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
35259     : flags( flags_ ), descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ), pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
35260     {}
35261 
35262     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35263 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35264     DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35265       : DescriptorUpdateTemplateCreateInfo( *reinterpret_cast<DescriptorUpdateTemplateCreateInfo const *>( &rhs ) )
35266     {}
35267 
35268 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35269     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_ = {} )
35270     : flags( flags_ ), descriptorUpdateEntryCount( static_cast<uint32_t>( descriptorUpdateEntries_.size() ) ), pDescriptorUpdateEntries( descriptorUpdateEntries_.data() ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
35271     {}
35272 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
35273 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35274 
35275     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35276 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35277     DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35278     {
35279       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const *>( &rhs );
35280       return *this;
35281     }
35282 
setPNextVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35283     DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35284     {
35285       pNext = pNext_;
35286       return *this;
35287     }
35288 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35289     DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
35290     {
35291       flags = flags_;
35292       return *this;
35293     }
35294 
setDescriptorUpdateEntryCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35295     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT
35296     {
35297       descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
35298       return *this;
35299     }
35300 
setPDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35301     DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
35302     {
35303       pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
35304       return *this;
35305     }
35306 
35307 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35308     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
35309     {
35310       descriptorUpdateEntryCount = static_cast<uint32_t>( descriptorUpdateEntries_.size() );
35311       pDescriptorUpdateEntries = descriptorUpdateEntries_.data();
35312       return *this;
35313     }
35314 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
35315 
setTemplateTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35316     DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
35317     {
35318       templateType = templateType_;
35319       return *this;
35320     }
35321 
setDescriptorSetLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35322     DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
35323     {
35324       descriptorSetLayout = descriptorSetLayout_;
35325       return *this;
35326     }
35327 
setPipelineBindPointVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35328     DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
35329     {
35330       pipelineBindPoint = pipelineBindPoint_;
35331       return *this;
35332     }
35333 
setPipelineLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35334     DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
35335     {
35336       pipelineLayout = pipelineLayout_;
35337       return *this;
35338     }
35339 
setSetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35340     DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
35341     {
35342       set = set_;
35343       return *this;
35344     }
35345 
35346 
operator VkDescriptorUpdateTemplateCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35347     operator VkDescriptorUpdateTemplateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
35348     {
35349       return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( this );
35350     }
35351 
operator VkDescriptorUpdateTemplateCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35352     operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
35353     {
35354       return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>( this );
35355     }
35356 
35357 
35358 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35359     auto operator<=>( DescriptorUpdateTemplateCreateInfo const& ) const = default;
35360 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35361     bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35362     {
35363       return ( sType == rhs.sType )
35364           && ( pNext == rhs.pNext )
35365           && ( flags == rhs.flags )
35366           && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount )
35367           && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries )
35368           && ( templateType == rhs.templateType )
35369           && ( descriptorSetLayout == rhs.descriptorSetLayout )
35370           && ( pipelineBindPoint == rhs.pipelineBindPoint )
35371           && ( pipelineLayout == rhs.pipelineLayout )
35372           && ( set == rhs.set );
35373     }
35374 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo35375     bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35376     {
35377       return !operator==( rhs );
35378     }
35379 #endif
35380 
35381 
35382 
35383   public:
35384     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
35385     const void* pNext = {};
35386     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {};
35387     uint32_t descriptorUpdateEntryCount = {};
35388     const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries = {};
35389     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet;
35390     VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
35391     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
35392     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {};
35393     uint32_t set = {};
35394 
35395   };
35396   static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" );
35397   static_assert( std::is_standard_layout<DescriptorUpdateTemplateCreateInfo>::value, "struct wrapper is not a standard layout!" );
35398 
35399   template <>
35400   struct CppType<StructureType, StructureType::eDescriptorUpdateTemplateCreateInfo>
35401   {
35402     using Type = DescriptorUpdateTemplateCreateInfo;
35403   };
35404   using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
35405 
35406   struct DeviceQueueCreateInfo
35407   {
35408     static const bool allowDuplicate = false;
35409     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo;
35410 
35411 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35412     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueCount_ = {}, const float* pQueuePriorities_ = {}) VULKAN_HPP_NOEXCEPT
35413     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( queueCount_ ), pQueuePriorities( pQueuePriorities_ )
35414     {}
35415 
35416     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35417 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35418     DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35419       : DeviceQueueCreateInfo( *reinterpret_cast<DeviceQueueCreateInfo const *>( &rhs ) )
35420     {}
35421 
35422 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35423     DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_, uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ )
35424     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( static_cast<uint32_t>( queuePriorities_.size() ) ), pQueuePriorities( queuePriorities_.data() )
35425     {}
35426 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
35427 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35428 
35429     VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35430 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35431     DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35432     {
35433       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const *>( &rhs );
35434       return *this;
35435     }
35436 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35437     DeviceQueueCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35438     {
35439       pNext = pNext_;
35440       return *this;
35441     }
35442 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35443     DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
35444     {
35445       flags = flags_;
35446       return *this;
35447     }
35448 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35449     DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
35450     {
35451       queueFamilyIndex = queueFamilyIndex_;
35452       return *this;
35453     }
35454 
setQueueCountVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35455     DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT
35456     {
35457       queueCount = queueCount_;
35458       return *this;
35459     }
35460 
setPQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35461     DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT
35462     {
35463       pQueuePriorities = pQueuePriorities_;
35464       return *this;
35465     }
35466 
35467 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35468     DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT
35469     {
35470       queueCount = static_cast<uint32_t>( queuePriorities_.size() );
35471       pQueuePriorities = queuePriorities_.data();
35472       return *this;
35473     }
35474 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
35475 
35476 
operator VkDeviceQueueCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35477     operator VkDeviceQueueCreateInfo const&() const VULKAN_HPP_NOEXCEPT
35478     {
35479       return *reinterpret_cast<const VkDeviceQueueCreateInfo*>( this );
35480     }
35481 
operator VkDeviceQueueCreateInfo&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35482     operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
35483     {
35484       return *reinterpret_cast<VkDeviceQueueCreateInfo*>( this );
35485     }
35486 
35487 
35488 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35489     auto operator<=>( DeviceQueueCreateInfo const& ) const = default;
35490 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35491     bool operator==( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35492     {
35493       return ( sType == rhs.sType )
35494           && ( pNext == rhs.pNext )
35495           && ( flags == rhs.flags )
35496           && ( queueFamilyIndex == rhs.queueFamilyIndex )
35497           && ( queueCount == rhs.queueCount )
35498           && ( pQueuePriorities == rhs.pQueuePriorities );
35499     }
35500 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo35501     bool operator!=( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35502     {
35503       return !operator==( rhs );
35504     }
35505 #endif
35506 
35507 
35508 
35509   public:
35510     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo;
35511     const void* pNext = {};
35512     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
35513     uint32_t queueFamilyIndex = {};
35514     uint32_t queueCount = {};
35515     const float* pQueuePriorities = {};
35516 
35517   };
35518   static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" );
35519   static_assert( std::is_standard_layout<DeviceQueueCreateInfo>::value, "struct wrapper is not a standard layout!" );
35520 
35521   template <>
35522   struct CppType<StructureType, StructureType::eDeviceQueueCreateInfo>
35523   {
35524     using Type = DeviceQueueCreateInfo;
35525   };
35526 
35527   struct PhysicalDeviceFeatures
35528   {
35529 
35530 
35531 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35532     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
35533     : 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_ )
35534     {}
35535 
35536     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35537 
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35538     PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
35539       : PhysicalDeviceFeatures( *reinterpret_cast<PhysicalDeviceFeatures const *>( &rhs ) )
35540     {}
35541 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35542 
35543     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35544 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35545     PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
35546     {
35547       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const *>( &rhs );
35548       return *this;
35549     }
35550 
setRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35551     PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
35552     {
35553       robustBufferAccess = robustBufferAccess_;
35554       return *this;
35555     }
35556 
setFullDrawIndexUint32VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35557     PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT
35558     {
35559       fullDrawIndexUint32 = fullDrawIndexUint32_;
35560       return *this;
35561     }
35562 
setImageCubeArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35563     PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT
35564     {
35565       imageCubeArray = imageCubeArray_;
35566       return *this;
35567     }
35568 
setIndependentBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35569     PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT
35570     {
35571       independentBlend = independentBlend_;
35572       return *this;
35573     }
35574 
setGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35575     PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT
35576     {
35577       geometryShader = geometryShader_;
35578       return *this;
35579     }
35580 
setTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35581     PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT
35582     {
35583       tessellationShader = tessellationShader_;
35584       return *this;
35585     }
35586 
setSampleRateShadingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35587     PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT
35588     {
35589       sampleRateShading = sampleRateShading_;
35590       return *this;
35591     }
35592 
setDualSrcBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35593     PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT
35594     {
35595       dualSrcBlend = dualSrcBlend_;
35596       return *this;
35597     }
35598 
setLogicOpVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35599     PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT
35600     {
35601       logicOp = logicOp_;
35602       return *this;
35603     }
35604 
setMultiDrawIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35605     PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT
35606     {
35607       multiDrawIndirect = multiDrawIndirect_;
35608       return *this;
35609     }
35610 
setDrawIndirectFirstInstanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35611     PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT
35612     {
35613       drawIndirectFirstInstance = drawIndirectFirstInstance_;
35614       return *this;
35615     }
35616 
setDepthClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35617     PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT
35618     {
35619       depthClamp = depthClamp_;
35620       return *this;
35621     }
35622 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35623     PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
35624     {
35625       depthBiasClamp = depthBiasClamp_;
35626       return *this;
35627     }
35628 
setFillModeNonSolidVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35629     PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT
35630     {
35631       fillModeNonSolid = fillModeNonSolid_;
35632       return *this;
35633     }
35634 
setDepthBoundsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35635     PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT
35636     {
35637       depthBounds = depthBounds_;
35638       return *this;
35639     }
35640 
setWideLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35641     PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT
35642     {
35643       wideLines = wideLines_;
35644       return *this;
35645     }
35646 
setLargePointsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35647     PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT
35648     {
35649       largePoints = largePoints_;
35650       return *this;
35651     }
35652 
setAlphaToOneVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35653     PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT
35654     {
35655       alphaToOne = alphaToOne_;
35656       return *this;
35657     }
35658 
setMultiViewportVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35659     PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT
35660     {
35661       multiViewport = multiViewport_;
35662       return *this;
35663     }
35664 
setSamplerAnisotropyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35665     PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT
35666     {
35667       samplerAnisotropy = samplerAnisotropy_;
35668       return *this;
35669     }
35670 
setTextureCompressionETC2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35671     PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT
35672     {
35673       textureCompressionETC2 = textureCompressionETC2_;
35674       return *this;
35675     }
35676 
setTextureCompressionASTC_LDRVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35677     PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
35678     {
35679       textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
35680       return *this;
35681     }
35682 
setTextureCompressionBCVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35683     PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT
35684     {
35685       textureCompressionBC = textureCompressionBC_;
35686       return *this;
35687     }
35688 
setOcclusionQueryPreciseVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35689     PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT
35690     {
35691       occlusionQueryPrecise = occlusionQueryPrecise_;
35692       return *this;
35693     }
35694 
setPipelineStatisticsQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35695     PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT
35696     {
35697       pipelineStatisticsQuery = pipelineStatisticsQuery_;
35698       return *this;
35699     }
35700 
setVertexPipelineStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35701     PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
35702     {
35703       vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
35704       return *this;
35705     }
35706 
setFragmentStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35707     PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
35708     {
35709       fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
35710       return *this;
35711     }
35712 
setShaderTessellationAndGeometryPointSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35713     PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT
35714     {
35715       shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
35716       return *this;
35717     }
35718 
setShaderImageGatherExtendedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35719     PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT
35720     {
35721       shaderImageGatherExtended = shaderImageGatherExtended_;
35722       return *this;
35723     }
35724 
setShaderStorageImageExtendedFormatsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35725     PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
35726     {
35727       shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
35728       return *this;
35729     }
35730 
setShaderStorageImageMultisampleVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35731     PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
35732     {
35733       shaderStorageImageMultisample = shaderStorageImageMultisample_;
35734       return *this;
35735     }
35736 
setShaderStorageImageReadWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35737     PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
35738     {
35739       shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
35740       return *this;
35741     }
35742 
setShaderStorageImageWriteWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35743     PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
35744     {
35745       shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
35746       return *this;
35747     }
35748 
setShaderUniformBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35749     PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
35750     {
35751       shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
35752       return *this;
35753     }
35754 
setShaderSampledImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35755     PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
35756     {
35757       shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
35758       return *this;
35759     }
35760 
setShaderStorageBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35761     PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
35762     {
35763       shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
35764       return *this;
35765     }
35766 
setShaderStorageImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35767     PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
35768     {
35769       shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
35770       return *this;
35771     }
35772 
setShaderClipDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35773     PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT
35774     {
35775       shaderClipDistance = shaderClipDistance_;
35776       return *this;
35777     }
35778 
setShaderCullDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35779     PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT
35780     {
35781       shaderCullDistance = shaderCullDistance_;
35782       return *this;
35783     }
35784 
setShaderFloat64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35785     PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT
35786     {
35787       shaderFloat64 = shaderFloat64_;
35788       return *this;
35789     }
35790 
setShaderInt64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35791     PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT
35792     {
35793       shaderInt64 = shaderInt64_;
35794       return *this;
35795     }
35796 
setShaderInt16VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35797     PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT
35798     {
35799       shaderInt16 = shaderInt16_;
35800       return *this;
35801     }
35802 
setShaderResourceResidencyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35803     PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT
35804     {
35805       shaderResourceResidency = shaderResourceResidency_;
35806       return *this;
35807     }
35808 
setShaderResourceMinLodVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35809     PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT
35810     {
35811       shaderResourceMinLod = shaderResourceMinLod_;
35812       return *this;
35813     }
35814 
setSparseBindingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35815     PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT
35816     {
35817       sparseBinding = sparseBinding_;
35818       return *this;
35819     }
35820 
setSparseResidencyBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35821     PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT
35822     {
35823       sparseResidencyBuffer = sparseResidencyBuffer_;
35824       return *this;
35825     }
35826 
setSparseResidencyImage2DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35827     PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT
35828     {
35829       sparseResidencyImage2D = sparseResidencyImage2D_;
35830       return *this;
35831     }
35832 
setSparseResidencyImage3DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35833     PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT
35834     {
35835       sparseResidencyImage3D = sparseResidencyImage3D_;
35836       return *this;
35837     }
35838 
setSparseResidency2SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35839     PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT
35840     {
35841       sparseResidency2Samples = sparseResidency2Samples_;
35842       return *this;
35843     }
35844 
setSparseResidency4SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35845     PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT
35846     {
35847       sparseResidency4Samples = sparseResidency4Samples_;
35848       return *this;
35849     }
35850 
setSparseResidency8SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35851     PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT
35852     {
35853       sparseResidency8Samples = sparseResidency8Samples_;
35854       return *this;
35855     }
35856 
setSparseResidency16SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35857     PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT
35858     {
35859       sparseResidency16Samples = sparseResidency16Samples_;
35860       return *this;
35861     }
35862 
setSparseResidencyAliasedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35863     PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT
35864     {
35865       sparseResidencyAliased = sparseResidencyAliased_;
35866       return *this;
35867     }
35868 
setVariableMultisampleRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35869     PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT
35870     {
35871       variableMultisampleRate = variableMultisampleRate_;
35872       return *this;
35873     }
35874 
setInheritedQueriesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35875     PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT
35876     {
35877       inheritedQueries = inheritedQueries_;
35878       return *this;
35879     }
35880 
35881 
operator VkPhysicalDeviceFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35882     operator VkPhysicalDeviceFeatures const&() const VULKAN_HPP_NOEXCEPT
35883     {
35884       return *reinterpret_cast<const VkPhysicalDeviceFeatures*>( this );
35885     }
35886 
operator VkPhysicalDeviceFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35887     operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
35888     {
35889       return *reinterpret_cast<VkPhysicalDeviceFeatures*>( this );
35890     }
35891 
35892 
35893 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35894     auto operator<=>( PhysicalDeviceFeatures const& ) const = default;
35895 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35896     bool operator==( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
35897     {
35898       return ( robustBufferAccess == rhs.robustBufferAccess )
35899           && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 )
35900           && ( imageCubeArray == rhs.imageCubeArray )
35901           && ( independentBlend == rhs.independentBlend )
35902           && ( geometryShader == rhs.geometryShader )
35903           && ( tessellationShader == rhs.tessellationShader )
35904           && ( sampleRateShading == rhs.sampleRateShading )
35905           && ( dualSrcBlend == rhs.dualSrcBlend )
35906           && ( logicOp == rhs.logicOp )
35907           && ( multiDrawIndirect == rhs.multiDrawIndirect )
35908           && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance )
35909           && ( depthClamp == rhs.depthClamp )
35910           && ( depthBiasClamp == rhs.depthBiasClamp )
35911           && ( fillModeNonSolid == rhs.fillModeNonSolid )
35912           && ( depthBounds == rhs.depthBounds )
35913           && ( wideLines == rhs.wideLines )
35914           && ( largePoints == rhs.largePoints )
35915           && ( alphaToOne == rhs.alphaToOne )
35916           && ( multiViewport == rhs.multiViewport )
35917           && ( samplerAnisotropy == rhs.samplerAnisotropy )
35918           && ( textureCompressionETC2 == rhs.textureCompressionETC2 )
35919           && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR )
35920           && ( textureCompressionBC == rhs.textureCompressionBC )
35921           && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise )
35922           && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery )
35923           && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics )
35924           && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics )
35925           && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize )
35926           && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended )
35927           && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats )
35928           && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample )
35929           && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat )
35930           && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat )
35931           && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing )
35932           && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing )
35933           && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing )
35934           && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing )
35935           && ( shaderClipDistance == rhs.shaderClipDistance )
35936           && ( shaderCullDistance == rhs.shaderCullDistance )
35937           && ( shaderFloat64 == rhs.shaderFloat64 )
35938           && ( shaderInt64 == rhs.shaderInt64 )
35939           && ( shaderInt16 == rhs.shaderInt16 )
35940           && ( shaderResourceResidency == rhs.shaderResourceResidency )
35941           && ( shaderResourceMinLod == rhs.shaderResourceMinLod )
35942           && ( sparseBinding == rhs.sparseBinding )
35943           && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer )
35944           && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D )
35945           && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D )
35946           && ( sparseResidency2Samples == rhs.sparseResidency2Samples )
35947           && ( sparseResidency4Samples == rhs.sparseResidency4Samples )
35948           && ( sparseResidency8Samples == rhs.sparseResidency8Samples )
35949           && ( sparseResidency16Samples == rhs.sparseResidency16Samples )
35950           && ( sparseResidencyAliased == rhs.sparseResidencyAliased )
35951           && ( variableMultisampleRate == rhs.variableMultisampleRate )
35952           && ( inheritedQueries == rhs.inheritedQueries );
35953     }
35954 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures35955     bool operator!=( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
35956     {
35957       return !operator==( rhs );
35958     }
35959 #endif
35960 
35961 
35962 
35963   public:
35964     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {};
35965     VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {};
35966     VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {};
35967     VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {};
35968     VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {};
35969     VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {};
35970     VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {};
35971     VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {};
35972     VULKAN_HPP_NAMESPACE::Bool32 logicOp = {};
35973     VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {};
35974     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {};
35975     VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {};
35976     VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {};
35977     VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {};
35978     VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {};
35979     VULKAN_HPP_NAMESPACE::Bool32 wideLines = {};
35980     VULKAN_HPP_NAMESPACE::Bool32 largePoints = {};
35981     VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {};
35982     VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {};
35983     VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {};
35984     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {};
35985     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {};
35986     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {};
35987     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {};
35988     VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {};
35989     VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {};
35990     VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {};
35991     VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {};
35992     VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {};
35993     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {};
35994     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {};
35995     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {};
35996     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {};
35997     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {};
35998     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {};
35999     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {};
36000     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {};
36001     VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {};
36002     VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {};
36003     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {};
36004     VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {};
36005     VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {};
36006     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {};
36007     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {};
36008     VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {};
36009     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {};
36010     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {};
36011     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {};
36012     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {};
36013     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {};
36014     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {};
36015     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {};
36016     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {};
36017     VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {};
36018     VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {};
36019 
36020   };
36021   static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" );
36022   static_assert( std::is_standard_layout<PhysicalDeviceFeatures>::value, "struct wrapper is not a standard layout!" );
36023 
36024   struct DeviceCreateInfo
36025   {
36026     static const bool allowDuplicate = false;
36027     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo;
36028 
36029 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo36030     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
36031     : flags( flags_ ), queueCreateInfoCount( queueCreateInfoCount_ ), pQueueCreateInfos( pQueueCreateInfos_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ), pEnabledFeatures( pEnabledFeatures_ )
36032     {}
36033 
36034     VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36035 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo36036     DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36037       : DeviceCreateInfo( *reinterpret_cast<DeviceCreateInfo const *>( &rhs ) )
36038     {}
36039 
36040 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo36041     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_ = {} )
36042     : 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_ )
36043     {}
36044 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36045 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36046 
36047     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36048 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo36049     DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36050     {
36051       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceCreateInfo const *>( &rhs );
36052       return *this;
36053     }
36054 
setPNextVULKAN_HPP_NAMESPACE::DeviceCreateInfo36055     DeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36056     {
36057       pNext = pNext_;
36058       return *this;
36059     }
36060 
setFlagsVULKAN_HPP_NAMESPACE::DeviceCreateInfo36061     DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36062     {
36063       flags = flags_;
36064       return *this;
36065     }
36066 
setQueueCreateInfoCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo36067     DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT
36068     {
36069       queueCreateInfoCount = queueCreateInfoCount_;
36070       return *this;
36071     }
36072 
setPQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo36073     DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
36074     {
36075       pQueueCreateInfos = pQueueCreateInfos_;
36076       return *this;
36077     }
36078 
36079 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo36080     DeviceCreateInfo & setQueueCreateInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
36081     {
36082       queueCreateInfoCount = static_cast<uint32_t>( queueCreateInfos_.size() );
36083       pQueueCreateInfos = queueCreateInfos_.data();
36084       return *this;
36085     }
36086 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36087 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo36088     DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
36089     {
36090       enabledLayerCount = enabledLayerCount_;
36091       return *this;
36092     }
36093 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo36094     DeviceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
36095     {
36096       ppEnabledLayerNames = ppEnabledLayerNames_;
36097       return *this;
36098     }
36099 
36100 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo36101     DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
36102     {
36103       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
36104       ppEnabledLayerNames = pEnabledLayerNames_.data();
36105       return *this;
36106     }
36107 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36108 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo36109     DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
36110     {
36111       enabledExtensionCount = enabledExtensionCount_;
36112       return *this;
36113     }
36114 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo36115     DeviceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
36116     {
36117       ppEnabledExtensionNames = ppEnabledExtensionNames_;
36118       return *this;
36119     }
36120 
36121 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo36122     DeviceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
36123     {
36124       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
36125       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
36126       return *this;
36127     }
36128 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36129 
setPEnabledFeaturesVULKAN_HPP_NAMESPACE::DeviceCreateInfo36130     DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
36131     {
36132       pEnabledFeatures = pEnabledFeatures_;
36133       return *this;
36134     }
36135 
36136 
operator VkDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceCreateInfo36137     operator VkDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36138     {
36139       return *reinterpret_cast<const VkDeviceCreateInfo*>( this );
36140     }
36141 
operator VkDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceCreateInfo36142     operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
36143     {
36144       return *reinterpret_cast<VkDeviceCreateInfo*>( this );
36145     }
36146 
36147 
36148 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36149     auto operator<=>( DeviceCreateInfo const& ) const = default;
36150 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceCreateInfo36151     bool operator==( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36152     {
36153       return ( sType == rhs.sType )
36154           && ( pNext == rhs.pNext )
36155           && ( flags == rhs.flags )
36156           && ( queueCreateInfoCount == rhs.queueCreateInfoCount )
36157           && ( pQueueCreateInfos == rhs.pQueueCreateInfos )
36158           && ( enabledLayerCount == rhs.enabledLayerCount )
36159           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
36160           && ( enabledExtensionCount == rhs.enabledExtensionCount )
36161           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames )
36162           && ( pEnabledFeatures == rhs.pEnabledFeatures );
36163     }
36164 
operator !=VULKAN_HPP_NAMESPACE::DeviceCreateInfo36165     bool operator!=( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36166     {
36167       return !operator==( rhs );
36168     }
36169 #endif
36170 
36171 
36172 
36173   public:
36174     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo;
36175     const void* pNext = {};
36176     VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {};
36177     uint32_t queueCreateInfoCount = {};
36178     const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos = {};
36179     uint32_t enabledLayerCount = {};
36180     const char* const * ppEnabledLayerNames = {};
36181     uint32_t enabledExtensionCount = {};
36182     const char* const * ppEnabledExtensionNames = {};
36183     const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures = {};
36184 
36185   };
36186   static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" );
36187   static_assert( std::is_standard_layout<DeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
36188 
36189   template <>
36190   struct CppType<StructureType, StructureType::eDeviceCreateInfo>
36191   {
36192     using Type = DeviceCreateInfo;
36193   };
36194 
36195   struct DeviceDeviceMemoryReportCreateInfoEXT
36196   {
36197     static const bool allowDuplicate = true;
36198     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
36199 
36200 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36201     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
36202     : flags( flags_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
36203     {}
36204 
36205     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36206 
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36207     DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
36208       : DeviceDeviceMemoryReportCreateInfoEXT( *reinterpret_cast<DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs ) )
36209     {}
36210 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36211 
36212     VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36213 
operator =VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36214     DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
36215     {
36216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs );
36217       return *this;
36218     }
36219 
setPNextVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36220     DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36221     {
36222       pNext = pNext_;
36223       return *this;
36224     }
36225 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36226     DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
36227     {
36228       flags = flags_;
36229       return *this;
36230     }
36231 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36232     DeviceDeviceMemoryReportCreateInfoEXT & setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
36233     {
36234       pfnUserCallback = pfnUserCallback_;
36235       return *this;
36236     }
36237 
setPUserDataVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36238     DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
36239     {
36240       pUserData = pUserData_;
36241       return *this;
36242     }
36243 
36244 
operator VkDeviceDeviceMemoryReportCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36245     operator VkDeviceDeviceMemoryReportCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
36246     {
36247       return *reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
36248     }
36249 
operator VkDeviceDeviceMemoryReportCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36250     operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
36251     {
36252       return *reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
36253     }
36254 
36255 
36256 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36257     auto operator<=>( DeviceDeviceMemoryReportCreateInfoEXT const& ) const = default;
36258 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36259     bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
36260     {
36261       return ( sType == rhs.sType )
36262           && ( pNext == rhs.pNext )
36263           && ( flags == rhs.flags )
36264           && ( pfnUserCallback == rhs.pfnUserCallback )
36265           && ( pUserData == rhs.pUserData );
36266     }
36267 
operator !=VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT36268     bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
36269     {
36270       return !operator==( rhs );
36271     }
36272 #endif
36273 
36274 
36275 
36276   public:
36277     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
36278     const void* pNext = {};
36279     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
36280     PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {};
36281     void* pUserData = {};
36282 
36283   };
36284   static_assert( sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) == sizeof( VkDeviceDeviceMemoryReportCreateInfoEXT ), "struct and wrapper have different size!" );
36285   static_assert( std::is_standard_layout<DeviceDeviceMemoryReportCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
36286 
36287   template <>
36288   struct CppType<StructureType, StructureType::eDeviceDeviceMemoryReportCreateInfoEXT>
36289   {
36290     using Type = DeviceDeviceMemoryReportCreateInfoEXT;
36291   };
36292 
36293   struct DeviceDiagnosticsConfigCreateInfoNV
36294   {
36295     static const bool allowDuplicate = false;
36296     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
36297 
36298 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36299     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {}) VULKAN_HPP_NOEXCEPT
36300     : flags( flags_ )
36301     {}
36302 
36303     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36304 
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36305     DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
36306       : DeviceDiagnosticsConfigCreateInfoNV( *reinterpret_cast<DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs ) )
36307     {}
36308 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36309 
36310     VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36311 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36312     DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
36313     {
36314       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs );
36315       return *this;
36316     }
36317 
setPNextVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36318     DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36319     {
36320       pNext = pNext_;
36321       return *this;
36322     }
36323 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36324     DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
36325     {
36326       flags = flags_;
36327       return *this;
36328     }
36329 
36330 
operator VkDeviceDiagnosticsConfigCreateInfoNV const&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36331     operator VkDeviceDiagnosticsConfigCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
36332     {
36333       return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
36334     }
36335 
operator VkDeviceDiagnosticsConfigCreateInfoNV&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36336     operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
36337     {
36338       return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
36339     }
36340 
36341 
36342 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36343     auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const& ) const = default;
36344 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36345     bool operator==( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
36346     {
36347       return ( sType == rhs.sType )
36348           && ( pNext == rhs.pNext )
36349           && ( flags == rhs.flags );
36350     }
36351 
operator !=VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV36352     bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
36353     {
36354       return !operator==( rhs );
36355     }
36356 #endif
36357 
36358 
36359 
36360   public:
36361     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
36362     const void* pNext = {};
36363     VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {};
36364 
36365   };
36366   static_assert( sizeof( DeviceDiagnosticsConfigCreateInfoNV ) == sizeof( VkDeviceDiagnosticsConfigCreateInfoNV ), "struct and wrapper have different size!" );
36367   static_assert( std::is_standard_layout<DeviceDiagnosticsConfigCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
36368 
36369   template <>
36370   struct CppType<StructureType, StructureType::eDeviceDiagnosticsConfigCreateInfoNV>
36371   {
36372     using Type = DeviceDiagnosticsConfigCreateInfoNV;
36373   };
36374 
36375   struct DeviceEventInfoEXT
36376   {
36377     static const bool allowDuplicate = false;
36378     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT;
36379 
36380 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36381     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT(VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug) VULKAN_HPP_NOEXCEPT
36382     : deviceEvent( deviceEvent_ )
36383     {}
36384 
36385     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36386 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36387     DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
36388       : DeviceEventInfoEXT( *reinterpret_cast<DeviceEventInfoEXT const *>( &rhs ) )
36389     {}
36390 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36391 
36392     VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36393 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36394     DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
36395     {
36396       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const *>( &rhs );
36397       return *this;
36398     }
36399 
setPNextVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36400     DeviceEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36401     {
36402       pNext = pNext_;
36403       return *this;
36404     }
36405 
setDeviceEventVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36406     DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT
36407     {
36408       deviceEvent = deviceEvent_;
36409       return *this;
36410     }
36411 
36412 
operator VkDeviceEventInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36413     operator VkDeviceEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
36414     {
36415       return *reinterpret_cast<const VkDeviceEventInfoEXT*>( this );
36416     }
36417 
operator VkDeviceEventInfoEXT&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36418     operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
36419     {
36420       return *reinterpret_cast<VkDeviceEventInfoEXT*>( this );
36421     }
36422 
36423 
36424 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36425     auto operator<=>( DeviceEventInfoEXT const& ) const = default;
36426 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36427     bool operator==( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
36428     {
36429       return ( sType == rhs.sType )
36430           && ( pNext == rhs.pNext )
36431           && ( deviceEvent == rhs.deviceEvent );
36432     }
36433 
operator !=VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT36434     bool operator!=( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
36435     {
36436       return !operator==( rhs );
36437     }
36438 #endif
36439 
36440 
36441 
36442   public:
36443     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT;
36444     const void* pNext = {};
36445     VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug;
36446 
36447   };
36448   static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" );
36449   static_assert( std::is_standard_layout<DeviceEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
36450 
36451   template <>
36452   struct CppType<StructureType, StructureType::eDeviceEventInfoEXT>
36453   {
36454     using Type = DeviceEventInfoEXT;
36455   };
36456 
36457   struct DeviceGroupBindSparseInfo
36458   {
36459     static const bool allowDuplicate = false;
36460     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo;
36461 
36462 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36463     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo(uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}) VULKAN_HPP_NOEXCEPT
36464     : resourceDeviceIndex( resourceDeviceIndex_ ), memoryDeviceIndex( memoryDeviceIndex_ )
36465     {}
36466 
36467     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36468 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36469     DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36470       : DeviceGroupBindSparseInfo( *reinterpret_cast<DeviceGroupBindSparseInfo const *>( &rhs ) )
36471     {}
36472 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36473 
36474     VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36475 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36476     DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36477     {
36478       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const *>( &rhs );
36479       return *this;
36480     }
36481 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36482     DeviceGroupBindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36483     {
36484       pNext = pNext_;
36485       return *this;
36486     }
36487 
setResourceDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36488     DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
36489     {
36490       resourceDeviceIndex = resourceDeviceIndex_;
36491       return *this;
36492     }
36493 
setMemoryDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36494     DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
36495     {
36496       memoryDeviceIndex = memoryDeviceIndex_;
36497       return *this;
36498     }
36499 
36500 
operator VkDeviceGroupBindSparseInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36501     operator VkDeviceGroupBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
36502     {
36503       return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>( this );
36504     }
36505 
operator VkDeviceGroupBindSparseInfo&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36506     operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
36507     {
36508       return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>( this );
36509     }
36510 
36511 
36512 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36513     auto operator<=>( DeviceGroupBindSparseInfo const& ) const = default;
36514 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36515     bool operator==( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36516     {
36517       return ( sType == rhs.sType )
36518           && ( pNext == rhs.pNext )
36519           && ( resourceDeviceIndex == rhs.resourceDeviceIndex )
36520           && ( memoryDeviceIndex == rhs.memoryDeviceIndex );
36521     }
36522 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo36523     bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36524     {
36525       return !operator==( rhs );
36526     }
36527 #endif
36528 
36529 
36530 
36531   public:
36532     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
36533     const void* pNext = {};
36534     uint32_t resourceDeviceIndex = {};
36535     uint32_t memoryDeviceIndex = {};
36536 
36537   };
36538   static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" );
36539   static_assert( std::is_standard_layout<DeviceGroupBindSparseInfo>::value, "struct wrapper is not a standard layout!" );
36540 
36541   template <>
36542   struct CppType<StructureType, StructureType::eDeviceGroupBindSparseInfo>
36543   {
36544     using Type = DeviceGroupBindSparseInfo;
36545   };
36546   using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
36547 
36548   struct DeviceGroupCommandBufferBeginInfo
36549   {
36550     static const bool allowDuplicate = false;
36551     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo;
36552 
36553 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36554     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo(uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
36555     : deviceMask( deviceMask_ )
36556     {}
36557 
36558     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36559 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36560     DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36561       : DeviceGroupCommandBufferBeginInfo( *reinterpret_cast<DeviceGroupCommandBufferBeginInfo const *>( &rhs ) )
36562     {}
36563 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36564 
36565     VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36566 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36567     DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36568     {
36569       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const *>( &rhs );
36570       return *this;
36571     }
36572 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36573     DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36574     {
36575       pNext = pNext_;
36576       return *this;
36577     }
36578 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36579     DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
36580     {
36581       deviceMask = deviceMask_;
36582       return *this;
36583     }
36584 
36585 
operator VkDeviceGroupCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36586     operator VkDeviceGroupCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
36587     {
36588       return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>( this );
36589     }
36590 
operator VkDeviceGroupCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36591     operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
36592     {
36593       return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>( this );
36594     }
36595 
36596 
36597 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36598     auto operator<=>( DeviceGroupCommandBufferBeginInfo const& ) const = default;
36599 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36600     bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36601     {
36602       return ( sType == rhs.sType )
36603           && ( pNext == rhs.pNext )
36604           && ( deviceMask == rhs.deviceMask );
36605     }
36606 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo36607     bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36608     {
36609       return !operator==( rhs );
36610     }
36611 #endif
36612 
36613 
36614 
36615   public:
36616     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
36617     const void* pNext = {};
36618     uint32_t deviceMask = {};
36619 
36620   };
36621   static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" );
36622   static_assert( std::is_standard_layout<DeviceGroupCommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
36623 
36624   template <>
36625   struct CppType<StructureType, StructureType::eDeviceGroupCommandBufferBeginInfo>
36626   {
36627     using Type = DeviceGroupCommandBufferBeginInfo;
36628   };
36629   using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
36630 
36631   class DisplayKHR
36632   {
36633   public:
36634     using CType = VkDisplayKHR;
36635 
36636     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR;
36637     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
36638 
36639   public:
DisplayKHR()36640     VULKAN_HPP_CONSTEXPR DisplayKHR() VULKAN_HPP_NOEXCEPT
36641       : m_displayKHR(VK_NULL_HANDLE)
36642     {}
36643 
DisplayKHR(std::nullptr_t)36644     VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
36645       : m_displayKHR(VK_NULL_HANDLE)
36646     {}
36647 
DisplayKHR(VkDisplayKHR displayKHR)36648     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT
36649       : m_displayKHR( displayKHR )
36650     {}
36651 
36652 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayKHR displayKHR)36653     DisplayKHR & operator=(VkDisplayKHR displayKHR) VULKAN_HPP_NOEXCEPT
36654     {
36655       m_displayKHR = displayKHR;
36656       return *this;
36657     }
36658 #endif
36659 
operator =(std::nullptr_t)36660     DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
36661     {
36662       m_displayKHR = VK_NULL_HANDLE;
36663       return *this;
36664     }
36665 
36666 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36667     auto operator<=>( DisplayKHR const& ) const = default;
36668 #else
operator ==(DisplayKHR const & rhs) const36669     bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
36670     {
36671       return m_displayKHR == rhs.m_displayKHR;
36672     }
36673 
operator !=(DisplayKHR const & rhs) const36674     bool operator!=(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
36675     {
36676       return m_displayKHR != rhs.m_displayKHR;
36677     }
36678 
operator <(DisplayKHR const & rhs) const36679     bool operator<(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
36680     {
36681       return m_displayKHR < rhs.m_displayKHR;
36682     }
36683 #endif
36684 
operator VkDisplayKHR() const36685     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT
36686     {
36687       return m_displayKHR;
36688     }
36689 
operator bool() const36690     explicit operator bool() const VULKAN_HPP_NOEXCEPT
36691     {
36692       return m_displayKHR != VK_NULL_HANDLE;
36693     }
36694 
operator !() const36695     bool operator!() const VULKAN_HPP_NOEXCEPT
36696     {
36697       return m_displayKHR == VK_NULL_HANDLE;
36698     }
36699 
36700   private:
36701     VkDisplayKHR m_displayKHR;
36702   };
36703   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" );
36704 
36705   template <>
36706   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayKHR>
36707   {
36708     using type = VULKAN_HPP_NAMESPACE::DisplayKHR;
36709   };
36710 
36711   template <>
36712   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR>
36713   {
36714     using Type = VULKAN_HPP_NAMESPACE::DisplayKHR;
36715   };
36716 
36717 
36718   template <>
36719   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR>
36720   {
36721     using Type = VULKAN_HPP_NAMESPACE::DisplayKHR;
36722   };
36723 
36724 
36725   template <>
36726   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DisplayKHR>
36727   {
36728     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
36729   };
36730 
36731   struct PerformanceConfigurationAcquireInfoINTEL
36732   {
36733     static const bool allowDuplicate = false;
36734     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
36735 
36736 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36737     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated) VULKAN_HPP_NOEXCEPT
36738     : type( type_ )
36739     {}
36740 
36741     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36742 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36743     PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
36744       : PerformanceConfigurationAcquireInfoINTEL( *reinterpret_cast<PerformanceConfigurationAcquireInfoINTEL const *>( &rhs ) )
36745     {}
36746 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36747 
36748     VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36749 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36750     PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
36751     {
36752       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const *>( &rhs );
36753       return *this;
36754     }
36755 
setPNextVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36756     PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36757     {
36758       pNext = pNext_;
36759       return *this;
36760     }
36761 
setTypeVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36762     PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
36763     {
36764       type = type_;
36765       return *this;
36766     }
36767 
36768 
operator VkPerformanceConfigurationAcquireInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36769     operator VkPerformanceConfigurationAcquireInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
36770     {
36771       return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( this );
36772     }
36773 
operator VkPerformanceConfigurationAcquireInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36774     operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
36775     {
36776       return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>( this );
36777     }
36778 
36779 
36780 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36781     auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const& ) const = default;
36782 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36783     bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
36784     {
36785       return ( sType == rhs.sType )
36786           && ( pNext == rhs.pNext )
36787           && ( type == rhs.type );
36788     }
36789 
operator !=VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL36790     bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
36791     {
36792       return !operator==( rhs );
36793     }
36794 #endif
36795 
36796 
36797 
36798   public:
36799     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
36800     const void* pNext = {};
36801     VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated;
36802 
36803   };
36804   static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" );
36805   static_assert( std::is_standard_layout<PerformanceConfigurationAcquireInfoINTEL>::value, "struct wrapper is not a standard layout!" );
36806 
36807   template <>
36808   struct CppType<StructureType, StructureType::ePerformanceConfigurationAcquireInfoINTEL>
36809   {
36810     using Type = PerformanceConfigurationAcquireInfoINTEL;
36811   };
36812 
36813   class PerformanceConfigurationINTEL
36814   {
36815   public:
36816     using CType = VkPerformanceConfigurationINTEL;
36817 
36818     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL;
36819     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
36820 
36821   public:
PerformanceConfigurationINTEL()36822     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() VULKAN_HPP_NOEXCEPT
36823       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
36824     {}
36825 
PerformanceConfigurationINTEL(std::nullptr_t)36826     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
36827       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
36828     {}
36829 
PerformanceConfigurationINTEL(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)36830     VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT
36831       : m_performanceConfigurationINTEL( performanceConfigurationINTEL )
36832     {}
36833 
36834 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)36835     PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL) VULKAN_HPP_NOEXCEPT
36836     {
36837       m_performanceConfigurationINTEL = performanceConfigurationINTEL;
36838       return *this;
36839     }
36840 #endif
36841 
operator =(std::nullptr_t)36842     PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
36843     {
36844       m_performanceConfigurationINTEL = VK_NULL_HANDLE;
36845       return *this;
36846     }
36847 
36848 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36849     auto operator<=>( PerformanceConfigurationINTEL const& ) const = default;
36850 #else
operator ==(PerformanceConfigurationINTEL const & rhs) const36851     bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
36852     {
36853       return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL;
36854     }
36855 
operator !=(PerformanceConfigurationINTEL const & rhs) const36856     bool operator!=(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
36857     {
36858       return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL;
36859     }
36860 
operator <(PerformanceConfigurationINTEL const & rhs) const36861     bool operator<(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
36862     {
36863       return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL;
36864     }
36865 #endif
36866 
operator VkPerformanceConfigurationINTEL() const36867     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT
36868     {
36869       return m_performanceConfigurationINTEL;
36870     }
36871 
operator bool() const36872     explicit operator bool() const VULKAN_HPP_NOEXCEPT
36873     {
36874       return m_performanceConfigurationINTEL != VK_NULL_HANDLE;
36875     }
36876 
operator !() const36877     bool operator!() const VULKAN_HPP_NOEXCEPT
36878     {
36879       return m_performanceConfigurationINTEL == VK_NULL_HANDLE;
36880     }
36881 
36882   private:
36883     VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL;
36884   };
36885   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" );
36886 
36887   template <>
36888   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePerformanceConfigurationINTEL>
36889   {
36890     using type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
36891   };
36892 
36893   template <>
36894   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL>
36895   {
36896     using Type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
36897   };
36898 
36899 
36900 
36901   template <>
36902   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
36903   {
36904     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
36905   };
36906 
36907   struct MemoryAllocateInfo
36908   {
36909     static const bool allowDuplicate = false;
36910     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo;
36911 
36912 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo36913     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeIndex_ = {}) VULKAN_HPP_NOEXCEPT
36914     : allocationSize( allocationSize_ ), memoryTypeIndex( memoryTypeIndex_ )
36915     {}
36916 
36917     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36918 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo36919     MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36920       : MemoryAllocateInfo( *reinterpret_cast<MemoryAllocateInfo const *>( &rhs ) )
36921     {}
36922 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36923 
36924     VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36925 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36926     MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36927     {
36928       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const *>( &rhs );
36929       return *this;
36930     }
36931 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateInfo36932     MemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36933     {
36934       pNext = pNext_;
36935       return *this;
36936     }
36937 
setAllocationSizeVULKAN_HPP_NAMESPACE::MemoryAllocateInfo36938     MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT
36939     {
36940       allocationSize = allocationSize_;
36941       return *this;
36942     }
36943 
setMemoryTypeIndexVULKAN_HPP_NAMESPACE::MemoryAllocateInfo36944     MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT
36945     {
36946       memoryTypeIndex = memoryTypeIndex_;
36947       return *this;
36948     }
36949 
36950 
operator VkMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36951     operator VkMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
36952     {
36953       return *reinterpret_cast<const VkMemoryAllocateInfo*>( this );
36954     }
36955 
operator VkMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36956     operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
36957     {
36958       return *reinterpret_cast<VkMemoryAllocateInfo*>( this );
36959     }
36960 
36961 
36962 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36963     auto operator<=>( MemoryAllocateInfo const& ) const = default;
36964 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36965     bool operator==( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36966     {
36967       return ( sType == rhs.sType )
36968           && ( pNext == rhs.pNext )
36969           && ( allocationSize == rhs.allocationSize )
36970           && ( memoryTypeIndex == rhs.memoryTypeIndex );
36971     }
36972 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36973     bool operator!=( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36974     {
36975       return !operator==( rhs );
36976     }
36977 #endif
36978 
36979 
36980 
36981   public:
36982     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo;
36983     const void* pNext = {};
36984     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
36985     uint32_t memoryTypeIndex = {};
36986 
36987   };
36988   static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" );
36989   static_assert( std::is_standard_layout<MemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
36990 
36991   template <>
36992   struct CppType<StructureType, StructureType::eMemoryAllocateInfo>
36993   {
36994     using Type = MemoryAllocateInfo;
36995   };
36996 
36997   class DeferredOperationKHR
36998   {
36999   public:
37000     using CType = VkDeferredOperationKHR;
37001 
37002     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR;
37003     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
37004 
37005   public:
DeferredOperationKHR()37006     VULKAN_HPP_CONSTEXPR DeferredOperationKHR() VULKAN_HPP_NOEXCEPT
37007       : m_deferredOperationKHR(VK_NULL_HANDLE)
37008     {}
37009 
DeferredOperationKHR(std::nullptr_t)37010     VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
37011       : m_deferredOperationKHR(VK_NULL_HANDLE)
37012     {}
37013 
DeferredOperationKHR(VkDeferredOperationKHR deferredOperationKHR)37014     VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT
37015       : m_deferredOperationKHR( deferredOperationKHR )
37016     {}
37017 
37018 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeferredOperationKHR deferredOperationKHR)37019     DeferredOperationKHR & operator=(VkDeferredOperationKHR deferredOperationKHR) VULKAN_HPP_NOEXCEPT
37020     {
37021       m_deferredOperationKHR = deferredOperationKHR;
37022       return *this;
37023     }
37024 #endif
37025 
operator =(std::nullptr_t)37026     DeferredOperationKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
37027     {
37028       m_deferredOperationKHR = VK_NULL_HANDLE;
37029       return *this;
37030     }
37031 
37032 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37033     auto operator<=>( DeferredOperationKHR const& ) const = default;
37034 #else
operator ==(DeferredOperationKHR const & rhs) const37035     bool operator==( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
37036     {
37037       return m_deferredOperationKHR == rhs.m_deferredOperationKHR;
37038     }
37039 
operator !=(DeferredOperationKHR const & rhs) const37040     bool operator!=(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
37041     {
37042       return m_deferredOperationKHR != rhs.m_deferredOperationKHR;
37043     }
37044 
operator <(DeferredOperationKHR const & rhs) const37045     bool operator<(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
37046     {
37047       return m_deferredOperationKHR < rhs.m_deferredOperationKHR;
37048     }
37049 #endif
37050 
operator VkDeferredOperationKHR() const37051     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeferredOperationKHR() const VULKAN_HPP_NOEXCEPT
37052     {
37053       return m_deferredOperationKHR;
37054     }
37055 
operator bool() const37056     explicit operator bool() const VULKAN_HPP_NOEXCEPT
37057     {
37058       return m_deferredOperationKHR != VK_NULL_HANDLE;
37059     }
37060 
operator !() const37061     bool operator!() const VULKAN_HPP_NOEXCEPT
37062     {
37063       return m_deferredOperationKHR == VK_NULL_HANDLE;
37064     }
37065 
37066   private:
37067     VkDeferredOperationKHR m_deferredOperationKHR;
37068   };
37069   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), "handle and wrapper have different size!" );
37070 
37071   template <>
37072   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeferredOperationKHR>
37073   {
37074     using type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
37075   };
37076 
37077   template <>
37078   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR>
37079   {
37080     using Type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
37081   };
37082 
37083 
37084 
37085   template <>
37086   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
37087   {
37088     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
37089   };
37090 
37091   class PipelineCache
37092   {
37093   public:
37094     using CType = VkPipelineCache;
37095 
37096     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache;
37097     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
37098 
37099   public:
PipelineCache()37100     VULKAN_HPP_CONSTEXPR PipelineCache() VULKAN_HPP_NOEXCEPT
37101       : m_pipelineCache(VK_NULL_HANDLE)
37102     {}
37103 
PipelineCache(std::nullptr_t)37104     VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
37105       : m_pipelineCache(VK_NULL_HANDLE)
37106     {}
37107 
PipelineCache(VkPipelineCache pipelineCache)37108     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT
37109       : m_pipelineCache( pipelineCache )
37110     {}
37111 
37112 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineCache pipelineCache)37113     PipelineCache & operator=(VkPipelineCache pipelineCache) VULKAN_HPP_NOEXCEPT
37114     {
37115       m_pipelineCache = pipelineCache;
37116       return *this;
37117     }
37118 #endif
37119 
operator =(std::nullptr_t)37120     PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
37121     {
37122       m_pipelineCache = VK_NULL_HANDLE;
37123       return *this;
37124     }
37125 
37126 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37127     auto operator<=>( PipelineCache const& ) const = default;
37128 #else
operator ==(PipelineCache const & rhs) const37129     bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
37130     {
37131       return m_pipelineCache == rhs.m_pipelineCache;
37132     }
37133 
operator !=(PipelineCache const & rhs) const37134     bool operator!=(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
37135     {
37136       return m_pipelineCache != rhs.m_pipelineCache;
37137     }
37138 
operator <(PipelineCache const & rhs) const37139     bool operator<(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
37140     {
37141       return m_pipelineCache < rhs.m_pipelineCache;
37142     }
37143 #endif
37144 
operator VkPipelineCache() const37145     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT
37146     {
37147       return m_pipelineCache;
37148     }
37149 
operator bool() const37150     explicit operator bool() const VULKAN_HPP_NOEXCEPT
37151     {
37152       return m_pipelineCache != VK_NULL_HANDLE;
37153     }
37154 
operator !() const37155     bool operator!() const VULKAN_HPP_NOEXCEPT
37156     {
37157       return m_pipelineCache == VK_NULL_HANDLE;
37158     }
37159 
37160   private:
37161     VkPipelineCache m_pipelineCache;
37162   };
37163   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" );
37164 
37165   template <>
37166   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineCache>
37167   {
37168     using type = VULKAN_HPP_NAMESPACE::PipelineCache;
37169   };
37170 
37171   template <>
37172   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache>
37173   {
37174     using Type = VULKAN_HPP_NAMESPACE::PipelineCache;
37175   };
37176 
37177 
37178   template <>
37179   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache>
37180   {
37181     using Type = VULKAN_HPP_NAMESPACE::PipelineCache;
37182   };
37183 
37184 
37185   template <>
37186   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PipelineCache>
37187   {
37188     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
37189   };
37190 
37191   struct EventCreateInfo
37192   {
37193     static const bool allowDuplicate = false;
37194     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo;
37195 
37196 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo37197     VULKAN_HPP_CONSTEXPR EventCreateInfo(VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
37198     : flags( flags_ )
37199     {}
37200 
37201     VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37202 
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo37203     EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37204       : EventCreateInfo( *reinterpret_cast<EventCreateInfo const *>( &rhs ) )
37205     {}
37206 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37207 
37208     VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37209 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo37210     EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37211     {
37212       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::EventCreateInfo const *>( &rhs );
37213       return *this;
37214     }
37215 
setPNextVULKAN_HPP_NAMESPACE::EventCreateInfo37216     EventCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37217     {
37218       pNext = pNext_;
37219       return *this;
37220     }
37221 
setFlagsVULKAN_HPP_NAMESPACE::EventCreateInfo37222     EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37223     {
37224       flags = flags_;
37225       return *this;
37226     }
37227 
37228 
operator VkEventCreateInfo const&VULKAN_HPP_NAMESPACE::EventCreateInfo37229     operator VkEventCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37230     {
37231       return *reinterpret_cast<const VkEventCreateInfo*>( this );
37232     }
37233 
operator VkEventCreateInfo&VULKAN_HPP_NAMESPACE::EventCreateInfo37234     operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT
37235     {
37236       return *reinterpret_cast<VkEventCreateInfo*>( this );
37237     }
37238 
37239 
37240 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37241     auto operator<=>( EventCreateInfo const& ) const = default;
37242 #else
operator ==VULKAN_HPP_NAMESPACE::EventCreateInfo37243     bool operator==( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37244     {
37245       return ( sType == rhs.sType )
37246           && ( pNext == rhs.pNext )
37247           && ( flags == rhs.flags );
37248     }
37249 
operator !=VULKAN_HPP_NAMESPACE::EventCreateInfo37250     bool operator!=( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37251     {
37252       return !operator==( rhs );
37253     }
37254 #endif
37255 
37256 
37257 
37258   public:
37259     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo;
37260     const void* pNext = {};
37261     VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {};
37262 
37263   };
37264   static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" );
37265   static_assert( std::is_standard_layout<EventCreateInfo>::value, "struct wrapper is not a standard layout!" );
37266 
37267   template <>
37268   struct CppType<StructureType, StructureType::eEventCreateInfo>
37269   {
37270     using Type = EventCreateInfo;
37271   };
37272 
37273   struct FenceCreateInfo
37274   {
37275     static const bool allowDuplicate = false;
37276     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo;
37277 
37278 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo37279     VULKAN_HPP_CONSTEXPR FenceCreateInfo(VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
37280     : flags( flags_ )
37281     {}
37282 
37283     VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37284 
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo37285     FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37286       : FenceCreateInfo( *reinterpret_cast<FenceCreateInfo const *>( &rhs ) )
37287     {}
37288 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37289 
37290     VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37291 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo37292     FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37293     {
37294       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceCreateInfo const *>( &rhs );
37295       return *this;
37296     }
37297 
setPNextVULKAN_HPP_NAMESPACE::FenceCreateInfo37298     FenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37299     {
37300       pNext = pNext_;
37301       return *this;
37302     }
37303 
setFlagsVULKAN_HPP_NAMESPACE::FenceCreateInfo37304     FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37305     {
37306       flags = flags_;
37307       return *this;
37308     }
37309 
37310 
operator VkFenceCreateInfo const&VULKAN_HPP_NAMESPACE::FenceCreateInfo37311     operator VkFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37312     {
37313       return *reinterpret_cast<const VkFenceCreateInfo*>( this );
37314     }
37315 
operator VkFenceCreateInfo&VULKAN_HPP_NAMESPACE::FenceCreateInfo37316     operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
37317     {
37318       return *reinterpret_cast<VkFenceCreateInfo*>( this );
37319     }
37320 
37321 
37322 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37323     auto operator<=>( FenceCreateInfo const& ) const = default;
37324 #else
operator ==VULKAN_HPP_NAMESPACE::FenceCreateInfo37325     bool operator==( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37326     {
37327       return ( sType == rhs.sType )
37328           && ( pNext == rhs.pNext )
37329           && ( flags == rhs.flags );
37330     }
37331 
operator !=VULKAN_HPP_NAMESPACE::FenceCreateInfo37332     bool operator!=( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37333     {
37334       return !operator==( rhs );
37335     }
37336 #endif
37337 
37338 
37339 
37340   public:
37341     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo;
37342     const void* pNext = {};
37343     VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {};
37344 
37345   };
37346   static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" );
37347   static_assert( std::is_standard_layout<FenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
37348 
37349   template <>
37350   struct CppType<StructureType, StructureType::eFenceCreateInfo>
37351   {
37352     using Type = FenceCreateInfo;
37353   };
37354 
37355   struct FramebufferCreateInfo
37356   {
37357     static const bool allowDuplicate = false;
37358     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo;
37359 
37360 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37361     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
37362     : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), width( width_ ), height( height_ ), layers( layers_ )
37363     {}
37364 
37365     VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37366 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37367     FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37368       : FramebufferCreateInfo( *reinterpret_cast<FramebufferCreateInfo const *>( &rhs ) )
37369     {}
37370 
37371 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37372     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_ = {} )
37373     : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), width( width_ ), height( height_ ), layers( layers_ )
37374     {}
37375 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37376 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37377 
37378     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37379 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo37380     FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37381     {
37382       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const *>( &rhs );
37383       return *this;
37384     }
37385 
setPNextVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37386     FramebufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37387     {
37388       pNext = pNext_;
37389       return *this;
37390     }
37391 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37392     FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37393     {
37394       flags = flags_;
37395       return *this;
37396     }
37397 
setRenderPassVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37398     FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
37399     {
37400       renderPass = renderPass_;
37401       return *this;
37402     }
37403 
setAttachmentCountVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37404     FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
37405     {
37406       attachmentCount = attachmentCount_;
37407       return *this;
37408     }
37409 
setPAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37410     FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
37411     {
37412       pAttachments = pAttachments_;
37413       return *this;
37414     }
37415 
37416 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37417     FramebufferCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
37418     {
37419       attachmentCount = static_cast<uint32_t>( attachments_.size() );
37420       pAttachments = attachments_.data();
37421       return *this;
37422     }
37423 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37424 
setWidthVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37425     FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
37426     {
37427       width = width_;
37428       return *this;
37429     }
37430 
setHeightVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37431     FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
37432     {
37433       height = height_;
37434       return *this;
37435     }
37436 
setLayersVULKAN_HPP_NAMESPACE::FramebufferCreateInfo37437     FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT
37438     {
37439       layers = layers_;
37440       return *this;
37441     }
37442 
37443 
operator VkFramebufferCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo37444     operator VkFramebufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37445     {
37446       return *reinterpret_cast<const VkFramebufferCreateInfo*>( this );
37447     }
37448 
operator VkFramebufferCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo37449     operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT
37450     {
37451       return *reinterpret_cast<VkFramebufferCreateInfo*>( this );
37452     }
37453 
37454 
37455 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37456     auto operator<=>( FramebufferCreateInfo const& ) const = default;
37457 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferCreateInfo37458     bool operator==( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37459     {
37460       return ( sType == rhs.sType )
37461           && ( pNext == rhs.pNext )
37462           && ( flags == rhs.flags )
37463           && ( renderPass == rhs.renderPass )
37464           && ( attachmentCount == rhs.attachmentCount )
37465           && ( pAttachments == rhs.pAttachments )
37466           && ( width == rhs.width )
37467           && ( height == rhs.height )
37468           && ( layers == rhs.layers );
37469     }
37470 
operator !=VULKAN_HPP_NAMESPACE::FramebufferCreateInfo37471     bool operator!=( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37472     {
37473       return !operator==( rhs );
37474     }
37475 #endif
37476 
37477 
37478 
37479   public:
37480     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo;
37481     const void* pNext = {};
37482     VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {};
37483     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
37484     uint32_t attachmentCount = {};
37485     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
37486     uint32_t width = {};
37487     uint32_t height = {};
37488     uint32_t layers = {};
37489 
37490   };
37491   static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" );
37492   static_assert( std::is_standard_layout<FramebufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
37493 
37494   template <>
37495   struct CppType<StructureType, StructureType::eFramebufferCreateInfo>
37496   {
37497     using Type = FramebufferCreateInfo;
37498   };
37499 
37500   struct VertexInputBindingDescription
37501   {
37502 
37503 
37504 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription37505     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription(uint32_t binding_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex) VULKAN_HPP_NOEXCEPT
37506     : binding( binding_ ), stride( stride_ ), inputRate( inputRate_ )
37507     {}
37508 
37509     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37510 
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription37511     VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
37512       : VertexInputBindingDescription( *reinterpret_cast<VertexInputBindingDescription const *>( &rhs ) )
37513     {}
37514 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37515 
37516     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37517 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription37518     VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
37519     {
37520       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const *>( &rhs );
37521       return *this;
37522     }
37523 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDescription37524     VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
37525     {
37526       binding = binding_;
37527       return *this;
37528     }
37529 
setStrideVULKAN_HPP_NAMESPACE::VertexInputBindingDescription37530     VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
37531     {
37532       stride = stride_;
37533       return *this;
37534     }
37535 
setInputRateVULKAN_HPP_NAMESPACE::VertexInputBindingDescription37536     VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
37537     {
37538       inputRate = inputRate_;
37539       return *this;
37540     }
37541 
37542 
operator VkVertexInputBindingDescription const&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription37543     operator VkVertexInputBindingDescription const&() const VULKAN_HPP_NOEXCEPT
37544     {
37545       return *reinterpret_cast<const VkVertexInputBindingDescription*>( this );
37546     }
37547 
operator VkVertexInputBindingDescription&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription37548     operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT
37549     {
37550       return *reinterpret_cast<VkVertexInputBindingDescription*>( this );
37551     }
37552 
37553 
37554 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37555     auto operator<=>( VertexInputBindingDescription const& ) const = default;
37556 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDescription37557     bool operator==( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
37558     {
37559       return ( binding == rhs.binding )
37560           && ( stride == rhs.stride )
37561           && ( inputRate == rhs.inputRate );
37562     }
37563 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDescription37564     bool operator!=( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
37565     {
37566       return !operator==( rhs );
37567     }
37568 #endif
37569 
37570 
37571 
37572   public:
37573     uint32_t binding = {};
37574     uint32_t stride = {};
37575     VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
37576 
37577   };
37578   static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" );
37579   static_assert( std::is_standard_layout<VertexInputBindingDescription>::value, "struct wrapper is not a standard layout!" );
37580 
37581   struct VertexInputAttributeDescription
37582   {
37583 
37584 
37585 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37586     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
37587     : location( location_ ), binding( binding_ ), format( format_ ), offset( offset_ )
37588     {}
37589 
37590     VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37591 
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37592     VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
37593       : VertexInputAttributeDescription( *reinterpret_cast<VertexInputAttributeDescription const *>( &rhs ) )
37594     {}
37595 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37596 
37597     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37598 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37599     VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
37600     {
37601       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const *>( &rhs );
37602       return *this;
37603     }
37604 
setLocationVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37605     VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
37606     {
37607       location = location_;
37608       return *this;
37609     }
37610 
setBindingVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37611     VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
37612     {
37613       binding = binding_;
37614       return *this;
37615     }
37616 
setFormatVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37617     VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
37618     {
37619       format = format_;
37620       return *this;
37621     }
37622 
setOffsetVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37623     VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
37624     {
37625       offset = offset_;
37626       return *this;
37627     }
37628 
37629 
operator VkVertexInputAttributeDescription const&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37630     operator VkVertexInputAttributeDescription const&() const VULKAN_HPP_NOEXCEPT
37631     {
37632       return *reinterpret_cast<const VkVertexInputAttributeDescription*>( this );
37633     }
37634 
operator VkVertexInputAttributeDescription&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37635     operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT
37636     {
37637       return *reinterpret_cast<VkVertexInputAttributeDescription*>( this );
37638     }
37639 
37640 
37641 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37642     auto operator<=>( VertexInputAttributeDescription const& ) const = default;
37643 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37644     bool operator==( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
37645     {
37646       return ( location == rhs.location )
37647           && ( binding == rhs.binding )
37648           && ( format == rhs.format )
37649           && ( offset == rhs.offset );
37650     }
37651 
operator !=VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription37652     bool operator!=( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
37653     {
37654       return !operator==( rhs );
37655     }
37656 #endif
37657 
37658 
37659 
37660   public:
37661     uint32_t location = {};
37662     uint32_t binding = {};
37663     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
37664     uint32_t offset = {};
37665 
37666   };
37667   static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" );
37668   static_assert( std::is_standard_layout<VertexInputAttributeDescription>::value, "struct wrapper is not a standard layout!" );
37669 
37670   struct PipelineVertexInputStateCreateInfo
37671   {
37672     static const bool allowDuplicate = false;
37673     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo;
37674 
37675 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37676     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
37677     : flags( flags_ ), vertexBindingDescriptionCount( vertexBindingDescriptionCount_ ), pVertexBindingDescriptions( pVertexBindingDescriptions_ ), vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ ), pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
37678     {}
37679 
37680     VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37681 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37682     PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37683       : PipelineVertexInputStateCreateInfo( *reinterpret_cast<PipelineVertexInputStateCreateInfo const *>( &rhs ) )
37684     {}
37685 
37686 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37687     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_ = {} )
37688     : flags( flags_ ), vertexBindingDescriptionCount( static_cast<uint32_t>( vertexBindingDescriptions_.size() ) ), pVertexBindingDescriptions( vertexBindingDescriptions_.data() ), vertexAttributeDescriptionCount( static_cast<uint32_t>( vertexAttributeDescriptions_.size() ) ), pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() )
37689     {}
37690 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37691 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37692 
37693     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37694 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37695     PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37696     {
37697       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const *>( &rhs );
37698       return *this;
37699     }
37700 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37701     PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37702     {
37703       pNext = pNext_;
37704       return *this;
37705     }
37706 
setFlagsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37707     PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37708     {
37709       flags = flags_;
37710       return *this;
37711     }
37712 
setVertexBindingDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37713     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
37714     {
37715       vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
37716       return *this;
37717     }
37718 
setPVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37719     PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
37720     {
37721       pVertexBindingDescriptions = pVertexBindingDescriptions_;
37722       return *this;
37723     }
37724 
37725 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37726     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
37727     {
37728       vertexBindingDescriptionCount = static_cast<uint32_t>( vertexBindingDescriptions_.size() );
37729       pVertexBindingDescriptions = vertexBindingDescriptions_.data();
37730       return *this;
37731     }
37732 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37733 
setVertexAttributeDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37734     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
37735     {
37736       vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
37737       return *this;
37738     }
37739 
setPVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37740     PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
37741     {
37742       pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
37743       return *this;
37744     }
37745 
37746 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37747     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
37748     {
37749       vertexAttributeDescriptionCount = static_cast<uint32_t>( vertexAttributeDescriptions_.size() );
37750       pVertexAttributeDescriptions = vertexAttributeDescriptions_.data();
37751       return *this;
37752     }
37753 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37754 
37755 
operator VkPipelineVertexInputStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37756     operator VkPipelineVertexInputStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37757     {
37758       return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>( this );
37759     }
37760 
operator VkPipelineVertexInputStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37761     operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37762     {
37763       return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>( this );
37764     }
37765 
37766 
37767 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37768     auto operator<=>( PipelineVertexInputStateCreateInfo const& ) const = default;
37769 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37770     bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37771     {
37772       return ( sType == rhs.sType )
37773           && ( pNext == rhs.pNext )
37774           && ( flags == rhs.flags )
37775           && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount )
37776           && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions )
37777           && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount )
37778           && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
37779     }
37780 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo37781     bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37782     {
37783       return !operator==( rhs );
37784     }
37785 #endif
37786 
37787 
37788 
37789   public:
37790     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
37791     const void* pNext = {};
37792     VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {};
37793     uint32_t vertexBindingDescriptionCount = {};
37794     const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions = {};
37795     uint32_t vertexAttributeDescriptionCount = {};
37796     const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions = {};
37797 
37798   };
37799   static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" );
37800   static_assert( std::is_standard_layout<PipelineVertexInputStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37801 
37802   template <>
37803   struct CppType<StructureType, StructureType::ePipelineVertexInputStateCreateInfo>
37804   {
37805     using Type = PipelineVertexInputStateCreateInfo;
37806   };
37807 
37808   struct PipelineInputAssemblyStateCreateInfo
37809   {
37810     static const bool allowDuplicate = false;
37811     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo;
37812 
37813 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37814     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
37815     : flags( flags_ ), topology( topology_ ), primitiveRestartEnable( primitiveRestartEnable_ )
37816     {}
37817 
37818     VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37819 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37820     PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37821       : PipelineInputAssemblyStateCreateInfo( *reinterpret_cast<PipelineInputAssemblyStateCreateInfo const *>( &rhs ) )
37822     {}
37823 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37824 
37825     VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37826 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37827     PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37828     {
37829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const *>( &rhs );
37830       return *this;
37831     }
37832 
setPNextVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37833     PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37834     {
37835       pNext = pNext_;
37836       return *this;
37837     }
37838 
setFlagsVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37839     PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37840     {
37841       flags = flags_;
37842       return *this;
37843     }
37844 
setTopologyVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37845     PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT
37846     {
37847       topology = topology_;
37848       return *this;
37849     }
37850 
setPrimitiveRestartEnableVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37851     PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
37852     {
37853       primitiveRestartEnable = primitiveRestartEnable_;
37854       return *this;
37855     }
37856 
37857 
operator VkPipelineInputAssemblyStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37858     operator VkPipelineInputAssemblyStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37859     {
37860       return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>( this );
37861     }
37862 
operator VkPipelineInputAssemblyStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37863     operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37864     {
37865       return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>( this );
37866     }
37867 
37868 
37869 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37870     auto operator<=>( PipelineInputAssemblyStateCreateInfo const& ) const = default;
37871 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37872     bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37873     {
37874       return ( sType == rhs.sType )
37875           && ( pNext == rhs.pNext )
37876           && ( flags == rhs.flags )
37877           && ( topology == rhs.topology )
37878           && ( primitiveRestartEnable == rhs.primitiveRestartEnable );
37879     }
37880 
operator !=VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37881     bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37882     {
37883       return !operator==( rhs );
37884     }
37885 #endif
37886 
37887 
37888 
37889   public:
37890     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
37891     const void* pNext = {};
37892     VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {};
37893     VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList;
37894     VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {};
37895 
37896   };
37897   static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" );
37898   static_assert( std::is_standard_layout<PipelineInputAssemblyStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37899 
37900   template <>
37901   struct CppType<StructureType, StructureType::ePipelineInputAssemblyStateCreateInfo>
37902   {
37903     using Type = PipelineInputAssemblyStateCreateInfo;
37904   };
37905 
37906   struct PipelineTessellationStateCreateInfo
37907   {
37908     static const bool allowDuplicate = false;
37909     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo;
37910 
37911 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37912     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, uint32_t patchControlPoints_ = {}) VULKAN_HPP_NOEXCEPT
37913     : flags( flags_ ), patchControlPoints( patchControlPoints_ )
37914     {}
37915 
37916     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37917 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37918     PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37919       : PipelineTessellationStateCreateInfo( *reinterpret_cast<PipelineTessellationStateCreateInfo const *>( &rhs ) )
37920     {}
37921 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37922 
37923     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37924 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37925     PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37926     {
37927       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const *>( &rhs );
37928       return *this;
37929     }
37930 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37931     PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37932     {
37933       pNext = pNext_;
37934       return *this;
37935     }
37936 
setFlagsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37937     PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37938     {
37939       flags = flags_;
37940       return *this;
37941     }
37942 
setPatchControlPointsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37943     PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT
37944     {
37945       patchControlPoints = patchControlPoints_;
37946       return *this;
37947     }
37948 
37949 
operator VkPipelineTessellationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37950     operator VkPipelineTessellationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37951     {
37952       return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>( this );
37953     }
37954 
operator VkPipelineTessellationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37955     operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37956     {
37957       return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>( this );
37958     }
37959 
37960 
37961 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37962     auto operator<=>( PipelineTessellationStateCreateInfo const& ) const = default;
37963 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37964     bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37965     {
37966       return ( sType == rhs.sType )
37967           && ( pNext == rhs.pNext )
37968           && ( flags == rhs.flags )
37969           && ( patchControlPoints == rhs.patchControlPoints );
37970     }
37971 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37972     bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37973     {
37974       return !operator==( rhs );
37975     }
37976 #endif
37977 
37978 
37979 
37980   public:
37981     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
37982     const void* pNext = {};
37983     VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {};
37984     uint32_t patchControlPoints = {};
37985 
37986   };
37987   static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" );
37988   static_assert( std::is_standard_layout<PipelineTessellationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37989 
37990   template <>
37991   struct CppType<StructureType, StructureType::ePipelineTessellationStateCreateInfo>
37992   {
37993     using Type = PipelineTessellationStateCreateInfo;
37994   };
37995 
37996   struct PipelineViewportStateCreateInfo
37997   {
37998     static const bool allowDuplicate = false;
37999     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo;
38000 
38001 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38002     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
38003     : flags( flags_ ), viewportCount( viewportCount_ ), pViewports( pViewports_ ), scissorCount( scissorCount_ ), pScissors( pScissors_ )
38004     {}
38005 
38006     VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38007 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38008     PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38009       : PipelineViewportStateCreateInfo( *reinterpret_cast<PipelineViewportStateCreateInfo const *>( &rhs ) )
38010     {}
38011 
38012 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38013     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_ = {} )
38014     : flags( flags_ ), viewportCount( static_cast<uint32_t>( viewports_.size() ) ), pViewports( viewports_.data() ), scissorCount( static_cast<uint32_t>( scissors_.size() ) ), pScissors( scissors_.data() )
38015     {}
38016 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38017 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38018 
38019     VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38020 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38021     PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38022     {
38023       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const *>( &rhs );
38024       return *this;
38025     }
38026 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38027     PipelineViewportStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38028     {
38029       pNext = pNext_;
38030       return *this;
38031     }
38032 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38033     PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38034     {
38035       flags = flags_;
38036       return *this;
38037     }
38038 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38039     PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
38040     {
38041       viewportCount = viewportCount_;
38042       return *this;
38043     }
38044 
setPViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38045     PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ ) VULKAN_HPP_NOEXCEPT
38046     {
38047       pViewports = pViewports_;
38048       return *this;
38049     }
38050 
38051 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38052     PipelineViewportStateCreateInfo & setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_ ) VULKAN_HPP_NOEXCEPT
38053     {
38054       viewportCount = static_cast<uint32_t>( viewports_.size() );
38055       pViewports = viewports_.data();
38056       return *this;
38057     }
38058 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38059 
setScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38060     PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
38061     {
38062       scissorCount = scissorCount_;
38063       return *this;
38064     }
38065 
setPScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38066     PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ ) VULKAN_HPP_NOEXCEPT
38067     {
38068       pScissors = pScissors_;
38069       return *this;
38070     }
38071 
38072 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38073     PipelineViewportStateCreateInfo & setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ ) VULKAN_HPP_NOEXCEPT
38074     {
38075       scissorCount = static_cast<uint32_t>( scissors_.size() );
38076       pScissors = scissors_.data();
38077       return *this;
38078     }
38079 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38080 
38081 
operator VkPipelineViewportStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38082     operator VkPipelineViewportStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38083     {
38084       return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>( this );
38085     }
38086 
operator VkPipelineViewportStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38087     operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT
38088     {
38089       return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>( this );
38090     }
38091 
38092 
38093 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38094     auto operator<=>( PipelineViewportStateCreateInfo const& ) const = default;
38095 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38096     bool operator==( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38097     {
38098       return ( sType == rhs.sType )
38099           && ( pNext == rhs.pNext )
38100           && ( flags == rhs.flags )
38101           && ( viewportCount == rhs.viewportCount )
38102           && ( pViewports == rhs.pViewports )
38103           && ( scissorCount == rhs.scissorCount )
38104           && ( pScissors == rhs.pScissors );
38105     }
38106 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo38107     bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38108     {
38109       return !operator==( rhs );
38110     }
38111 #endif
38112 
38113 
38114 
38115   public:
38116     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
38117     const void* pNext = {};
38118     VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {};
38119     uint32_t viewportCount = {};
38120     const VULKAN_HPP_NAMESPACE::Viewport* pViewports = {};
38121     uint32_t scissorCount = {};
38122     const VULKAN_HPP_NAMESPACE::Rect2D* pScissors = {};
38123 
38124   };
38125   static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" );
38126   static_assert( std::is_standard_layout<PipelineViewportStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
38127 
38128   template <>
38129   struct CppType<StructureType, StructureType::ePipelineViewportStateCreateInfo>
38130   {
38131     using Type = PipelineViewportStateCreateInfo;
38132   };
38133 
38134   struct PipelineRasterizationStateCreateInfo
38135   {
38136     static const bool allowDuplicate = false;
38137     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo;
38138 
38139 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38140     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
38141     : flags( flags_ ), depthClampEnable( depthClampEnable_ ), rasterizerDiscardEnable( rasterizerDiscardEnable_ ), polygonMode( polygonMode_ ), cullMode( cullMode_ ), frontFace( frontFace_ ), depthBiasEnable( depthBiasEnable_ ), depthBiasConstantFactor( depthBiasConstantFactor_ ), depthBiasClamp( depthBiasClamp_ ), depthBiasSlopeFactor( depthBiasSlopeFactor_ ), lineWidth( lineWidth_ )
38142     {}
38143 
38144     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38145 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38146     PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38147       : PipelineRasterizationStateCreateInfo( *reinterpret_cast<PipelineRasterizationStateCreateInfo const *>( &rhs ) )
38148     {}
38149 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38150 
38151     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38152 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38153     PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38154     {
38155       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const *>( &rhs );
38156       return *this;
38157     }
38158 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38159     PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38160     {
38161       pNext = pNext_;
38162       return *this;
38163     }
38164 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38165     PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38166     {
38167       flags = flags_;
38168       return *this;
38169     }
38170 
setDepthClampEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38171     PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT
38172     {
38173       depthClampEnable = depthClampEnable_;
38174       return *this;
38175     }
38176 
setRasterizerDiscardEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38177     PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
38178     {
38179       rasterizerDiscardEnable = rasterizerDiscardEnable_;
38180       return *this;
38181     }
38182 
setPolygonModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38183     PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT
38184     {
38185       polygonMode = polygonMode_;
38186       return *this;
38187     }
38188 
setCullModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38189     PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT
38190     {
38191       cullMode = cullMode_;
38192       return *this;
38193     }
38194 
setFrontFaceVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38195     PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT
38196     {
38197       frontFace = frontFace_;
38198       return *this;
38199     }
38200 
setDepthBiasEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38201     PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT
38202     {
38203       depthBiasEnable = depthBiasEnable_;
38204       return *this;
38205     }
38206 
setDepthBiasConstantFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38207     PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
38208     {
38209       depthBiasConstantFactor = depthBiasConstantFactor_;
38210       return *this;
38211     }
38212 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38213     PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
38214     {
38215       depthBiasClamp = depthBiasClamp_;
38216       return *this;
38217     }
38218 
setDepthBiasSlopeFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38219     PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
38220     {
38221       depthBiasSlopeFactor = depthBiasSlopeFactor_;
38222       return *this;
38223     }
38224 
setLineWidthVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38225     PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT
38226     {
38227       lineWidth = lineWidth_;
38228       return *this;
38229     }
38230 
38231 
operator VkPipelineRasterizationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38232     operator VkPipelineRasterizationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38233     {
38234       return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>( this );
38235     }
38236 
operator VkPipelineRasterizationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38237     operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
38238     {
38239       return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>( this );
38240     }
38241 
38242 
38243 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38244     auto operator<=>( PipelineRasterizationStateCreateInfo const& ) const = default;
38245 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38246     bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38247     {
38248       return ( sType == rhs.sType )
38249           && ( pNext == rhs.pNext )
38250           && ( flags == rhs.flags )
38251           && ( depthClampEnable == rhs.depthClampEnable )
38252           && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable )
38253           && ( polygonMode == rhs.polygonMode )
38254           && ( cullMode == rhs.cullMode )
38255           && ( frontFace == rhs.frontFace )
38256           && ( depthBiasEnable == rhs.depthBiasEnable )
38257           && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
38258           && ( depthBiasClamp == rhs.depthBiasClamp )
38259           && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor )
38260           && ( lineWidth == rhs.lineWidth );
38261     }
38262 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo38263     bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38264     {
38265       return !operator==( rhs );
38266     }
38267 #endif
38268 
38269 
38270 
38271   public:
38272     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
38273     const void* pNext = {};
38274     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {};
38275     VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {};
38276     VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {};
38277     VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill;
38278     VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {};
38279     VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise;
38280     VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {};
38281     float depthBiasConstantFactor = {};
38282     float depthBiasClamp = {};
38283     float depthBiasSlopeFactor = {};
38284     float lineWidth = {};
38285 
38286   };
38287   static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" );
38288   static_assert( std::is_standard_layout<PipelineRasterizationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
38289 
38290   template <>
38291   struct CppType<StructureType, StructureType::ePipelineRasterizationStateCreateInfo>
38292   {
38293     using Type = PipelineRasterizationStateCreateInfo;
38294   };
38295 
38296   struct PipelineMultisampleStateCreateInfo
38297   {
38298     static const bool allowDuplicate = false;
38299     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo;
38300 
38301 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38302     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
38303     : flags( flags_ ), rasterizationSamples( rasterizationSamples_ ), sampleShadingEnable( sampleShadingEnable_ ), minSampleShading( minSampleShading_ ), pSampleMask( pSampleMask_ ), alphaToCoverageEnable( alphaToCoverageEnable_ ), alphaToOneEnable( alphaToOneEnable_ )
38304     {}
38305 
38306     VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38307 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38308     PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38309       : PipelineMultisampleStateCreateInfo( *reinterpret_cast<PipelineMultisampleStateCreateInfo const *>( &rhs ) )
38310     {}
38311 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38312 
38313     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38314 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38315     PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38316     {
38317       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const *>( &rhs );
38318       return *this;
38319     }
38320 
setPNextVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38321     PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38322     {
38323       pNext = pNext_;
38324       return *this;
38325     }
38326 
setFlagsVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38327     PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38328     {
38329       flags = flags_;
38330       return *this;
38331     }
38332 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38333     PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
38334     {
38335       rasterizationSamples = rasterizationSamples_;
38336       return *this;
38337     }
38338 
setSampleShadingEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38339     PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT
38340     {
38341       sampleShadingEnable = sampleShadingEnable_;
38342       return *this;
38343     }
38344 
setMinSampleShadingVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38345     PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT
38346     {
38347       minSampleShading = minSampleShading_;
38348       return *this;
38349     }
38350 
setPSampleMaskVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38351     PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ ) VULKAN_HPP_NOEXCEPT
38352     {
38353       pSampleMask = pSampleMask_;
38354       return *this;
38355     }
38356 
setAlphaToCoverageEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38357     PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
38358     {
38359       alphaToCoverageEnable = alphaToCoverageEnable_;
38360       return *this;
38361     }
38362 
setAlphaToOneEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38363     PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
38364     {
38365       alphaToOneEnable = alphaToOneEnable_;
38366       return *this;
38367     }
38368 
38369 
operator VkPipelineMultisampleStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38370     operator VkPipelineMultisampleStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38371     {
38372       return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>( this );
38373     }
38374 
operator VkPipelineMultisampleStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38375     operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT
38376     {
38377       return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>( this );
38378     }
38379 
38380 
38381 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38382     auto operator<=>( PipelineMultisampleStateCreateInfo const& ) const = default;
38383 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38384     bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38385     {
38386       return ( sType == rhs.sType )
38387           && ( pNext == rhs.pNext )
38388           && ( flags == rhs.flags )
38389           && ( rasterizationSamples == rhs.rasterizationSamples )
38390           && ( sampleShadingEnable == rhs.sampleShadingEnable )
38391           && ( minSampleShading == rhs.minSampleShading )
38392           && ( pSampleMask == rhs.pSampleMask )
38393           && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable )
38394           && ( alphaToOneEnable == rhs.alphaToOneEnable );
38395     }
38396 
operator !=VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo38397     bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38398     {
38399       return !operator==( rhs );
38400     }
38401 #endif
38402 
38403 
38404 
38405   public:
38406     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
38407     const void* pNext = {};
38408     VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {};
38409     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
38410     VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {};
38411     float minSampleShading = {};
38412     const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask = {};
38413     VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {};
38414     VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {};
38415 
38416   };
38417   static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" );
38418   static_assert( std::is_standard_layout<PipelineMultisampleStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
38419 
38420   template <>
38421   struct CppType<StructureType, StructureType::ePipelineMultisampleStateCreateInfo>
38422   {
38423     using Type = PipelineMultisampleStateCreateInfo;
38424   };
38425 
38426   struct StencilOpState
38427   {
38428 
38429 
38430 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState38431     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
38432     : failOp( failOp_ ), passOp( passOp_ ), depthFailOp( depthFailOp_ ), compareOp( compareOp_ ), compareMask( compareMask_ ), writeMask( writeMask_ ), reference( reference_ )
38433     {}
38434 
38435     VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38436 
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState38437     StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
38438       : StencilOpState( *reinterpret_cast<StencilOpState const *>( &rhs ) )
38439     {}
38440 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38441 
38442     VULKAN_HPP_CONSTEXPR_14 StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38443 
operator =VULKAN_HPP_NAMESPACE::StencilOpState38444     StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
38445     {
38446       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StencilOpState const *>( &rhs );
38447       return *this;
38448     }
38449 
setFailOpVULKAN_HPP_NAMESPACE::StencilOpState38450     StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
38451     {
38452       failOp = failOp_;
38453       return *this;
38454     }
38455 
setPassOpVULKAN_HPP_NAMESPACE::StencilOpState38456     StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT
38457     {
38458       passOp = passOp_;
38459       return *this;
38460     }
38461 
setDepthFailOpVULKAN_HPP_NAMESPACE::StencilOpState38462     StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT
38463     {
38464       depthFailOp = depthFailOp_;
38465       return *this;
38466     }
38467 
setCompareOpVULKAN_HPP_NAMESPACE::StencilOpState38468     StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
38469     {
38470       compareOp = compareOp_;
38471       return *this;
38472     }
38473 
setCompareMaskVULKAN_HPP_NAMESPACE::StencilOpState38474     StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT
38475     {
38476       compareMask = compareMask_;
38477       return *this;
38478     }
38479 
setWriteMaskVULKAN_HPP_NAMESPACE::StencilOpState38480     StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT
38481     {
38482       writeMask = writeMask_;
38483       return *this;
38484     }
38485 
setReferenceVULKAN_HPP_NAMESPACE::StencilOpState38486     StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT
38487     {
38488       reference = reference_;
38489       return *this;
38490     }
38491 
38492 
operator VkStencilOpState const&VULKAN_HPP_NAMESPACE::StencilOpState38493     operator VkStencilOpState const&() const VULKAN_HPP_NOEXCEPT
38494     {
38495       return *reinterpret_cast<const VkStencilOpState*>( this );
38496     }
38497 
operator VkStencilOpState&VULKAN_HPP_NAMESPACE::StencilOpState38498     operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT
38499     {
38500       return *reinterpret_cast<VkStencilOpState*>( this );
38501     }
38502 
38503 
38504 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38505     auto operator<=>( StencilOpState const& ) const = default;
38506 #else
operator ==VULKAN_HPP_NAMESPACE::StencilOpState38507     bool operator==( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
38508     {
38509       return ( failOp == rhs.failOp )
38510           && ( passOp == rhs.passOp )
38511           && ( depthFailOp == rhs.depthFailOp )
38512           && ( compareOp == rhs.compareOp )
38513           && ( compareMask == rhs.compareMask )
38514           && ( writeMask == rhs.writeMask )
38515           && ( reference == rhs.reference );
38516     }
38517 
operator !=VULKAN_HPP_NAMESPACE::StencilOpState38518     bool operator!=( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
38519     {
38520       return !operator==( rhs );
38521     }
38522 #endif
38523 
38524 
38525 
38526   public:
38527     VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
38528     VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
38529     VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
38530     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
38531     uint32_t compareMask = {};
38532     uint32_t writeMask = {};
38533     uint32_t reference = {};
38534 
38535   };
38536   static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" );
38537   static_assert( std::is_standard_layout<StencilOpState>::value, "struct wrapper is not a standard layout!" );
38538 
38539   struct PipelineDepthStencilStateCreateInfo
38540   {
38541     static const bool allowDuplicate = false;
38542     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo;
38543 
38544 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38545     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
38546     : flags( flags_ ), depthTestEnable( depthTestEnable_ ), depthWriteEnable( depthWriteEnable_ ), depthCompareOp( depthCompareOp_ ), depthBoundsTestEnable( depthBoundsTestEnable_ ), stencilTestEnable( stencilTestEnable_ ), front( front_ ), back( back_ ), minDepthBounds( minDepthBounds_ ), maxDepthBounds( maxDepthBounds_ )
38547     {}
38548 
38549     VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38550 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38551     PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38552       : PipelineDepthStencilStateCreateInfo( *reinterpret_cast<PipelineDepthStencilStateCreateInfo const *>( &rhs ) )
38553     {}
38554 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38555 
38556     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38557 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38558     PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38559     {
38560       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const *>( &rhs );
38561       return *this;
38562     }
38563 
setPNextVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38564     PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38565     {
38566       pNext = pNext_;
38567       return *this;
38568     }
38569 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38570     PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38571     {
38572       flags = flags_;
38573       return *this;
38574     }
38575 
setDepthTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38576     PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT
38577     {
38578       depthTestEnable = depthTestEnable_;
38579       return *this;
38580     }
38581 
setDepthWriteEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38582     PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT
38583     {
38584       depthWriteEnable = depthWriteEnable_;
38585       return *this;
38586     }
38587 
setDepthCompareOpVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38588     PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT
38589     {
38590       depthCompareOp = depthCompareOp_;
38591       return *this;
38592     }
38593 
setDepthBoundsTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38594     PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
38595     {
38596       depthBoundsTestEnable = depthBoundsTestEnable_;
38597       return *this;
38598     }
38599 
setStencilTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38600     PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT
38601     {
38602       stencilTestEnable = stencilTestEnable_;
38603       return *this;
38604     }
38605 
setFrontVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38606     PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT
38607     {
38608       front = front_;
38609       return *this;
38610     }
38611 
setBackVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38612     PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT
38613     {
38614       back = back_;
38615       return *this;
38616     }
38617 
setMinDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38618     PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT
38619     {
38620       minDepthBounds = minDepthBounds_;
38621       return *this;
38622     }
38623 
setMaxDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38624     PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT
38625     {
38626       maxDepthBounds = maxDepthBounds_;
38627       return *this;
38628     }
38629 
38630 
operator VkPipelineDepthStencilStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38631     operator VkPipelineDepthStencilStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38632     {
38633       return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>( this );
38634     }
38635 
operator VkPipelineDepthStencilStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38636     operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT
38637     {
38638       return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>( this );
38639     }
38640 
38641 
38642 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38643     auto operator<=>( PipelineDepthStencilStateCreateInfo const& ) const = default;
38644 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38645     bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38646     {
38647       return ( sType == rhs.sType )
38648           && ( pNext == rhs.pNext )
38649           && ( flags == rhs.flags )
38650           && ( depthTestEnable == rhs.depthTestEnable )
38651           && ( depthWriteEnable == rhs.depthWriteEnable )
38652           && ( depthCompareOp == rhs.depthCompareOp )
38653           && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable )
38654           && ( stencilTestEnable == rhs.stencilTestEnable )
38655           && ( front == rhs.front )
38656           && ( back == rhs.back )
38657           && ( minDepthBounds == rhs.minDepthBounds )
38658           && ( maxDepthBounds == rhs.maxDepthBounds );
38659     }
38660 
operator !=VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo38661     bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38662     {
38663       return !operator==( rhs );
38664     }
38665 #endif
38666 
38667 
38668 
38669   public:
38670     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
38671     const void* pNext = {};
38672     VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {};
38673     VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {};
38674     VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {};
38675     VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
38676     VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {};
38677     VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {};
38678     VULKAN_HPP_NAMESPACE::StencilOpState front = {};
38679     VULKAN_HPP_NAMESPACE::StencilOpState back = {};
38680     float minDepthBounds = {};
38681     float maxDepthBounds = {};
38682 
38683   };
38684   static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" );
38685   static_assert( std::is_standard_layout<PipelineDepthStencilStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
38686 
38687   template <>
38688   struct CppType<StructureType, StructureType::ePipelineDepthStencilStateCreateInfo>
38689   {
38690     using Type = PipelineDepthStencilStateCreateInfo;
38691   };
38692 
38693   struct PipelineColorBlendAttachmentState
38694   {
38695 
38696 
38697 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38698     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
38699     : blendEnable( blendEnable_ ), srcColorBlendFactor( srcColorBlendFactor_ ), dstColorBlendFactor( dstColorBlendFactor_ ), colorBlendOp( colorBlendOp_ ), srcAlphaBlendFactor( srcAlphaBlendFactor_ ), dstAlphaBlendFactor( dstAlphaBlendFactor_ ), alphaBlendOp( alphaBlendOp_ ), colorWriteMask( colorWriteMask_ )
38700     {}
38701 
38702     VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38703 
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38704     PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
38705       : PipelineColorBlendAttachmentState( *reinterpret_cast<PipelineColorBlendAttachmentState const *>( &rhs ) )
38706     {}
38707 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38708 
38709     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38710 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38711     PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
38712     {
38713       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const *>( &rhs );
38714       return *this;
38715     }
38716 
setBlendEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38717     PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
38718     {
38719       blendEnable = blendEnable_;
38720       return *this;
38721     }
38722 
setSrcColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38723     PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
38724     {
38725       srcColorBlendFactor = srcColorBlendFactor_;
38726       return *this;
38727     }
38728 
setDstColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38729     PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
38730     {
38731       dstColorBlendFactor = dstColorBlendFactor_;
38732       return *this;
38733     }
38734 
setColorBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38735     PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
38736     {
38737       colorBlendOp = colorBlendOp_;
38738       return *this;
38739     }
38740 
setSrcAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38741     PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
38742     {
38743       srcAlphaBlendFactor = srcAlphaBlendFactor_;
38744       return *this;
38745     }
38746 
setDstAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38747     PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
38748     {
38749       dstAlphaBlendFactor = dstAlphaBlendFactor_;
38750       return *this;
38751     }
38752 
setAlphaBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38753     PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
38754     {
38755       alphaBlendOp = alphaBlendOp_;
38756       return *this;
38757     }
38758 
setColorWriteMaskVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38759     PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
38760     {
38761       colorWriteMask = colorWriteMask_;
38762       return *this;
38763     }
38764 
38765 
operator VkPipelineColorBlendAttachmentState const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38766     operator VkPipelineColorBlendAttachmentState const&() const VULKAN_HPP_NOEXCEPT
38767     {
38768       return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>( this );
38769     }
38770 
operator VkPipelineColorBlendAttachmentState&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38771     operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT
38772     {
38773       return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>( this );
38774     }
38775 
38776 
38777 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38778     auto operator<=>( PipelineColorBlendAttachmentState const& ) const = default;
38779 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38780     bool operator==( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
38781     {
38782       return ( blendEnable == rhs.blendEnable )
38783           && ( srcColorBlendFactor == rhs.srcColorBlendFactor )
38784           && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
38785           && ( colorBlendOp == rhs.colorBlendOp )
38786           && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
38787           && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
38788           && ( alphaBlendOp == rhs.alphaBlendOp )
38789           && ( colorWriteMask == rhs.colorWriteMask );
38790     }
38791 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38792     bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
38793     {
38794       return !operator==( rhs );
38795     }
38796 #endif
38797 
38798 
38799 
38800   public:
38801     VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {};
38802     VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
38803     VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
38804     VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
38805     VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
38806     VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
38807     VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
38808     VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {};
38809 
38810   };
38811   static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" );
38812   static_assert( std::is_standard_layout<PipelineColorBlendAttachmentState>::value, "struct wrapper is not a standard layout!" );
38813 
38814   struct PipelineColorBlendStateCreateInfo
38815   {
38816     static const bool allowDuplicate = false;
38817     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo;
38818 
38819 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38820     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
38821     : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), blendConstants( blendConstants_ )
38822     {}
38823 
38824     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38825 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38826     PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38827       : PipelineColorBlendStateCreateInfo( *reinterpret_cast<PipelineColorBlendStateCreateInfo const *>( &rhs ) )
38828     {}
38829 
38830 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38831     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_ = {} )
38832     : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), blendConstants( blendConstants_ )
38833     {}
38834 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38835 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38836 
38837     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38838 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38839     PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38840     {
38841       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const *>( &rhs );
38842       return *this;
38843     }
38844 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38845     PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38846     {
38847       pNext = pNext_;
38848       return *this;
38849     }
38850 
setFlagsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38851     PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38852     {
38853       flags = flags_;
38854       return *this;
38855     }
38856 
setLogicOpEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38857     PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT
38858     {
38859       logicOpEnable = logicOpEnable_;
38860       return *this;
38861     }
38862 
setLogicOpVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38863     PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT
38864     {
38865       logicOp = logicOp_;
38866       return *this;
38867     }
38868 
setAttachmentCountVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38869     PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
38870     {
38871       attachmentCount = attachmentCount_;
38872       return *this;
38873     }
38874 
setPAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38875     PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ ) VULKAN_HPP_NOEXCEPT
38876     {
38877       pAttachments = pAttachments_;
38878       return *this;
38879     }
38880 
38881 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38882     PipelineColorBlendStateCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT
38883     {
38884       attachmentCount = static_cast<uint32_t>( attachments_.size() );
38885       pAttachments = attachments_.data();
38886       return *this;
38887     }
38888 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38889 
setBlendConstantsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38890     PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float,4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
38891     {
38892       blendConstants = blendConstants_;
38893       return *this;
38894     }
38895 
38896 
operator VkPipelineColorBlendStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38897     operator VkPipelineColorBlendStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38898     {
38899       return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>( this );
38900     }
38901 
operator VkPipelineColorBlendStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38902     operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT
38903     {
38904       return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>( this );
38905     }
38906 
38907 
38908 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38909     auto operator<=>( PipelineColorBlendStateCreateInfo const& ) const = default;
38910 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38911     bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38912     {
38913       return ( sType == rhs.sType )
38914           && ( pNext == rhs.pNext )
38915           && ( flags == rhs.flags )
38916           && ( logicOpEnable == rhs.logicOpEnable )
38917           && ( logicOp == rhs.logicOp )
38918           && ( attachmentCount == rhs.attachmentCount )
38919           && ( pAttachments == rhs.pAttachments )
38920           && ( blendConstants == rhs.blendConstants );
38921     }
38922 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38923     bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38924     {
38925       return !operator==( rhs );
38926     }
38927 #endif
38928 
38929 
38930 
38931   public:
38932     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
38933     const void* pNext = {};
38934     VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {};
38935     VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {};
38936     VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear;
38937     uint32_t attachmentCount = {};
38938     const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments = {};
38939     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> blendConstants = {};
38940 
38941   };
38942   static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" );
38943   static_assert( std::is_standard_layout<PipelineColorBlendStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
38944 
38945   template <>
38946   struct CppType<StructureType, StructureType::ePipelineColorBlendStateCreateInfo>
38947   {
38948     using Type = PipelineColorBlendStateCreateInfo;
38949   };
38950 
38951   struct PipelineDynamicStateCreateInfo
38952   {
38953     static const bool allowDuplicate = false;
38954     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo;
38955 
38956 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38957     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, uint32_t dynamicStateCount_ = {}, const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ = {}) VULKAN_HPP_NOEXCEPT
38958     : flags( flags_ ), dynamicStateCount( dynamicStateCount_ ), pDynamicStates( pDynamicStates_ )
38959     {}
38960 
38961     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38962 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38963     PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38964       : PipelineDynamicStateCreateInfo( *reinterpret_cast<PipelineDynamicStateCreateInfo const *>( &rhs ) )
38965     {}
38966 
38967 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38968     PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ )
38969     : flags( flags_ ), dynamicStateCount( static_cast<uint32_t>( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() )
38970     {}
38971 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38972 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38973 
38974     VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38975 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38976     PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38977     {
38978       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const *>( &rhs );
38979       return *this;
38980     }
38981 
setPNextVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38982     PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38983     {
38984       pNext = pNext_;
38985       return *this;
38986     }
38987 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38988     PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38989     {
38990       flags = flags_;
38991       return *this;
38992     }
38993 
setDynamicStateCountVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38994     PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT
38995     {
38996       dynamicStateCount = dynamicStateCount_;
38997       return *this;
38998     }
38999 
setPDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo39000     PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ ) VULKAN_HPP_NOEXCEPT
39001     {
39002       pDynamicStates = pDynamicStates_;
39003       return *this;
39004     }
39005 
39006 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo39007     PipelineDynamicStateCreateInfo & setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT
39008     {
39009       dynamicStateCount = static_cast<uint32_t>( dynamicStates_.size() );
39010       pDynamicStates = dynamicStates_.data();
39011       return *this;
39012     }
39013 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39014 
39015 
operator VkPipelineDynamicStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo39016     operator VkPipelineDynamicStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39017     {
39018       return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>( this );
39019     }
39020 
operator VkPipelineDynamicStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo39021     operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT
39022     {
39023       return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>( this );
39024     }
39025 
39026 
39027 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39028     auto operator<=>( PipelineDynamicStateCreateInfo const& ) const = default;
39029 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo39030     bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39031     {
39032       return ( sType == rhs.sType )
39033           && ( pNext == rhs.pNext )
39034           && ( flags == rhs.flags )
39035           && ( dynamicStateCount == rhs.dynamicStateCount )
39036           && ( pDynamicStates == rhs.pDynamicStates );
39037     }
39038 
operator !=VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo39039     bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39040     {
39041       return !operator==( rhs );
39042     }
39043 #endif
39044 
39045 
39046 
39047   public:
39048     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
39049     const void* pNext = {};
39050     VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {};
39051     uint32_t dynamicStateCount = {};
39052     const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates = {};
39053 
39054   };
39055   static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" );
39056   static_assert( std::is_standard_layout<PipelineDynamicStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
39057 
39058   template <>
39059   struct CppType<StructureType, StructureType::ePipelineDynamicStateCreateInfo>
39060   {
39061     using Type = PipelineDynamicStateCreateInfo;
39062   };
39063 
39064   struct GraphicsPipelineCreateInfo
39065   {
39066     static const bool allowDuplicate = false;
39067     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo;
39068 
39069 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39070     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
39071     : 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_ )
39072     {}
39073 
39074     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39075 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39076     GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39077       : GraphicsPipelineCreateInfo( *reinterpret_cast<GraphicsPipelineCreateInfo const *>( &rhs ) )
39078     {}
39079 
39080 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39081     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_ = {} )
39082     : 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_ )
39083     {}
39084 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39085 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39086 
39087     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39088 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39089     GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39090     {
39091       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const *>( &rhs );
39092       return *this;
39093     }
39094 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39095     GraphicsPipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39096     {
39097       pNext = pNext_;
39098       return *this;
39099     }
39100 
setFlagsVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39101     GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39102     {
39103       flags = flags_;
39104       return *this;
39105     }
39106 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39107     GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
39108     {
39109       stageCount = stageCount_;
39110       return *this;
39111     }
39112 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39113     GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
39114     {
39115       pStages = pStages_;
39116       return *this;
39117     }
39118 
39119 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39120     GraphicsPipelineCreateInfo & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
39121     {
39122       stageCount = static_cast<uint32_t>( stages_.size() );
39123       pStages = stages_.data();
39124       return *this;
39125     }
39126 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39127 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39128     GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
39129     {
39130       pVertexInputState = pVertexInputState_;
39131       return *this;
39132     }
39133 
setPInputAssemblyStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39134     GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT
39135     {
39136       pInputAssemblyState = pInputAssemblyState_;
39137       return *this;
39138     }
39139 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39140     GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
39141     {
39142       pTessellationState = pTessellationState_;
39143       return *this;
39144     }
39145 
setPViewportStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39146     GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ ) VULKAN_HPP_NOEXCEPT
39147     {
39148       pViewportState = pViewportState_;
39149       return *this;
39150     }
39151 
setPRasterizationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39152     GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ ) VULKAN_HPP_NOEXCEPT
39153     {
39154       pRasterizationState = pRasterizationState_;
39155       return *this;
39156     }
39157 
setPMultisampleStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39158     GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
39159     {
39160       pMultisampleState = pMultisampleState_;
39161       return *this;
39162     }
39163 
setPDepthStencilStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39164     GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
39165     {
39166       pDepthStencilState = pDepthStencilState_;
39167       return *this;
39168     }
39169 
setPColorBlendStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39170     GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
39171     {
39172       pColorBlendState = pColorBlendState_;
39173       return *this;
39174     }
39175 
setPDynamicStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39176     GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT
39177     {
39178       pDynamicState = pDynamicState_;
39179       return *this;
39180     }
39181 
setLayoutVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39182     GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
39183     {
39184       layout = layout_;
39185       return *this;
39186     }
39187 
setRenderPassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39188     GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
39189     {
39190       renderPass = renderPass_;
39191       return *this;
39192     }
39193 
setSubpassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39194     GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
39195     {
39196       subpass = subpass_;
39197       return *this;
39198     }
39199 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39200     GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
39201     {
39202       basePipelineHandle = basePipelineHandle_;
39203       return *this;
39204     }
39205 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39206     GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
39207     {
39208       basePipelineIndex = basePipelineIndex_;
39209       return *this;
39210     }
39211 
39212 
operator VkGraphicsPipelineCreateInfo const&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39213     operator VkGraphicsPipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39214     {
39215       return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( this );
39216     }
39217 
operator VkGraphicsPipelineCreateInfo&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39218     operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
39219     {
39220       return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>( this );
39221     }
39222 
39223 
39224 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39225     auto operator<=>( GraphicsPipelineCreateInfo const& ) const = default;
39226 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39227     bool operator==( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39228     {
39229       return ( sType == rhs.sType )
39230           && ( pNext == rhs.pNext )
39231           && ( flags == rhs.flags )
39232           && ( stageCount == rhs.stageCount )
39233           && ( pStages == rhs.pStages )
39234           && ( pVertexInputState == rhs.pVertexInputState )
39235           && ( pInputAssemblyState == rhs.pInputAssemblyState )
39236           && ( pTessellationState == rhs.pTessellationState )
39237           && ( pViewportState == rhs.pViewportState )
39238           && ( pRasterizationState == rhs.pRasterizationState )
39239           && ( pMultisampleState == rhs.pMultisampleState )
39240           && ( pDepthStencilState == rhs.pDepthStencilState )
39241           && ( pColorBlendState == rhs.pColorBlendState )
39242           && ( pDynamicState == rhs.pDynamicState )
39243           && ( layout == rhs.layout )
39244           && ( renderPass == rhs.renderPass )
39245           && ( subpass == rhs.subpass )
39246           && ( basePipelineHandle == rhs.basePipelineHandle )
39247           && ( basePipelineIndex == rhs.basePipelineIndex );
39248     }
39249 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo39250     bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39251     {
39252       return !operator==( rhs );
39253     }
39254 #endif
39255 
39256 
39257 
39258   public:
39259     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
39260     const void* pNext = {};
39261     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
39262     uint32_t stageCount = {};
39263     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
39264     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
39265     const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState = {};
39266     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
39267     const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState = {};
39268     const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState = {};
39269     const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState = {};
39270     const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState = {};
39271     const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState = {};
39272     const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {};
39273     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
39274     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
39275     uint32_t subpass = {};
39276     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
39277     int32_t basePipelineIndex = {};
39278 
39279   };
39280   static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" );
39281   static_assert( std::is_standard_layout<GraphicsPipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
39282 
39283   template <>
39284   struct CppType<StructureType, StructureType::eGraphicsPipelineCreateInfo>
39285   {
39286     using Type = GraphicsPipelineCreateInfo;
39287   };
39288 
39289   struct ImageCreateInfo
39290   {
39291     static const bool allowDuplicate = false;
39292     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo;
39293 
39294 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo39295     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
39296     : 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_ )
39297     {}
39298 
39299     VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39300 
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo39301     ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39302       : ImageCreateInfo( *reinterpret_cast<ImageCreateInfo const *>( &rhs ) )
39303     {}
39304 
39305 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo39306     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 )
39307     : 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_ )
39308     {}
39309 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39310 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39311 
39312     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39313 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo39314     ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39315     {
39316       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCreateInfo const *>( &rhs );
39317       return *this;
39318     }
39319 
setPNextVULKAN_HPP_NAMESPACE::ImageCreateInfo39320     ImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39321     {
39322       pNext = pNext_;
39323       return *this;
39324     }
39325 
setFlagsVULKAN_HPP_NAMESPACE::ImageCreateInfo39326     ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39327     {
39328       flags = flags_;
39329       return *this;
39330     }
39331 
setImageTypeVULKAN_HPP_NAMESPACE::ImageCreateInfo39332     ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT
39333     {
39334       imageType = imageType_;
39335       return *this;
39336     }
39337 
setFormatVULKAN_HPP_NAMESPACE::ImageCreateInfo39338     ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
39339     {
39340       format = format_;
39341       return *this;
39342     }
39343 
setExtentVULKAN_HPP_NAMESPACE::ImageCreateInfo39344     ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
39345     {
39346       extent = extent_;
39347       return *this;
39348     }
39349 
setMipLevelsVULKAN_HPP_NAMESPACE::ImageCreateInfo39350     ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT
39351     {
39352       mipLevels = mipLevels_;
39353       return *this;
39354     }
39355 
setArrayLayersVULKAN_HPP_NAMESPACE::ImageCreateInfo39356     ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT
39357     {
39358       arrayLayers = arrayLayers_;
39359       return *this;
39360     }
39361 
setSamplesVULKAN_HPP_NAMESPACE::ImageCreateInfo39362     ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
39363     {
39364       samples = samples_;
39365       return *this;
39366     }
39367 
setTilingVULKAN_HPP_NAMESPACE::ImageCreateInfo39368     ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
39369     {
39370       tiling = tiling_;
39371       return *this;
39372     }
39373 
setUsageVULKAN_HPP_NAMESPACE::ImageCreateInfo39374     ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
39375     {
39376       usage = usage_;
39377       return *this;
39378     }
39379 
setSharingModeVULKAN_HPP_NAMESPACE::ImageCreateInfo39380     ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
39381     {
39382       sharingMode = sharingMode_;
39383       return *this;
39384     }
39385 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::ImageCreateInfo39386     ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
39387     {
39388       queueFamilyIndexCount = queueFamilyIndexCount_;
39389       return *this;
39390     }
39391 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo39392     ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
39393     {
39394       pQueueFamilyIndices = pQueueFamilyIndices_;
39395       return *this;
39396     }
39397 
39398 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo39399     ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
39400     {
39401       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
39402       pQueueFamilyIndices = queueFamilyIndices_.data();
39403       return *this;
39404     }
39405 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39406 
setInitialLayoutVULKAN_HPP_NAMESPACE::ImageCreateInfo39407     ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
39408     {
39409       initialLayout = initialLayout_;
39410       return *this;
39411     }
39412 
39413 
operator VkImageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageCreateInfo39414     operator VkImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39415     {
39416       return *reinterpret_cast<const VkImageCreateInfo*>( this );
39417     }
39418 
operator VkImageCreateInfo&VULKAN_HPP_NAMESPACE::ImageCreateInfo39419     operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT
39420     {
39421       return *reinterpret_cast<VkImageCreateInfo*>( this );
39422     }
39423 
39424 
39425 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39426     auto operator<=>( ImageCreateInfo const& ) const = default;
39427 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCreateInfo39428     bool operator==( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39429     {
39430       return ( sType == rhs.sType )
39431           && ( pNext == rhs.pNext )
39432           && ( flags == rhs.flags )
39433           && ( imageType == rhs.imageType )
39434           && ( format == rhs.format )
39435           && ( extent == rhs.extent )
39436           && ( mipLevels == rhs.mipLevels )
39437           && ( arrayLayers == rhs.arrayLayers )
39438           && ( samples == rhs.samples )
39439           && ( tiling == rhs.tiling )
39440           && ( usage == rhs.usage )
39441           && ( sharingMode == rhs.sharingMode )
39442           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
39443           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
39444           && ( initialLayout == rhs.initialLayout );
39445     }
39446 
operator !=VULKAN_HPP_NAMESPACE::ImageCreateInfo39447     bool operator!=( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39448     {
39449       return !operator==( rhs );
39450     }
39451 #endif
39452 
39453 
39454 
39455   public:
39456     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo;
39457     const void* pNext = {};
39458     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
39459     VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
39460     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
39461     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
39462     uint32_t mipLevels = {};
39463     uint32_t arrayLayers = {};
39464     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
39465     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
39466     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
39467     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
39468     uint32_t queueFamilyIndexCount = {};
39469     const uint32_t* pQueueFamilyIndices = {};
39470     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
39471 
39472   };
39473   static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" );
39474   static_assert( std::is_standard_layout<ImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
39475 
39476   template <>
39477   struct CppType<StructureType, StructureType::eImageCreateInfo>
39478   {
39479     using Type = ImageCreateInfo;
39480   };
39481 
39482   struct ImageViewCreateInfo
39483   {
39484     static const bool allowDuplicate = false;
39485     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo;
39486 
39487 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39488     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
39489     : flags( flags_ ), image( image_ ), viewType( viewType_ ), format( format_ ), components( components_ ), subresourceRange( subresourceRange_ )
39490     {}
39491 
39492     VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39493 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39494     ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39495       : ImageViewCreateInfo( *reinterpret_cast<ImageViewCreateInfo const *>( &rhs ) )
39496     {}
39497 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39498 
39499     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39500 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo39501     ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39502     {
39503       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const *>( &rhs );
39504       return *this;
39505     }
39506 
setPNextVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39507     ImageViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39508     {
39509       pNext = pNext_;
39510       return *this;
39511     }
39512 
setFlagsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39513     ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39514     {
39515       flags = flags_;
39516       return *this;
39517     }
39518 
setImageVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39519     ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
39520     {
39521       image = image_;
39522       return *this;
39523     }
39524 
setViewTypeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39525     ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT
39526     {
39527       viewType = viewType_;
39528       return *this;
39529     }
39530 
setFormatVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39531     ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
39532     {
39533       format = format_;
39534       return *this;
39535     }
39536 
setComponentsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39537     ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
39538     {
39539       components = components_;
39540       return *this;
39541     }
39542 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo39543     ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
39544     {
39545       subresourceRange = subresourceRange_;
39546       return *this;
39547     }
39548 
39549 
operator VkImageViewCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo39550     operator VkImageViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39551     {
39552       return *reinterpret_cast<const VkImageViewCreateInfo*>( this );
39553     }
39554 
operator VkImageViewCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo39555     operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
39556     {
39557       return *reinterpret_cast<VkImageViewCreateInfo*>( this );
39558     }
39559 
39560 
39561 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39562     auto operator<=>( ImageViewCreateInfo const& ) const = default;
39563 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewCreateInfo39564     bool operator==( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39565     {
39566       return ( sType == rhs.sType )
39567           && ( pNext == rhs.pNext )
39568           && ( flags == rhs.flags )
39569           && ( image == rhs.image )
39570           && ( viewType == rhs.viewType )
39571           && ( format == rhs.format )
39572           && ( components == rhs.components )
39573           && ( subresourceRange == rhs.subresourceRange );
39574     }
39575 
operator !=VULKAN_HPP_NAMESPACE::ImageViewCreateInfo39576     bool operator!=( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39577     {
39578       return !operator==( rhs );
39579     }
39580 #endif
39581 
39582 
39583 
39584   public:
39585     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo;
39586     const void* pNext = {};
39587     VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {};
39588     VULKAN_HPP_NAMESPACE::Image image = {};
39589     VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
39590     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
39591     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
39592     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
39593 
39594   };
39595   static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" );
39596   static_assert( std::is_standard_layout<ImageViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
39597 
39598   template <>
39599   struct CppType<StructureType, StructureType::eImageViewCreateInfo>
39600   {
39601     using Type = ImageViewCreateInfo;
39602   };
39603 
39604   struct IndirectCommandsLayoutTokenNV
39605   {
39606     static const bool allowDuplicate = false;
39607     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV;
39608 
39609 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39610     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
39611     : 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_ )
39612     {}
39613 
39614     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39615 
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39616     IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
39617       : IndirectCommandsLayoutTokenNV( *reinterpret_cast<IndirectCommandsLayoutTokenNV const *>( &rhs ) )
39618     {}
39619 
39620 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39621     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_ = {} )
39622     : 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() )
39623     {
39624 #ifdef VULKAN_HPP_NO_EXCEPTIONS
39625       VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() );
39626 #else
39627       if ( indexTypes_.size() != indexTypeValues_.size() )
39628       {
39629         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" );
39630       }
39631 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
39632     }
39633 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39634 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39635 
39636     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39637 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39638     IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
39639     {
39640       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const *>( &rhs );
39641       return *this;
39642     }
39643 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39644     IndirectCommandsLayoutTokenNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39645     {
39646       pNext = pNext_;
39647       return *this;
39648     }
39649 
setTokenTypeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39650     IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT
39651     {
39652       tokenType = tokenType_;
39653       return *this;
39654     }
39655 
setStreamVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39656     IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT
39657     {
39658       stream = stream_;
39659       return *this;
39660     }
39661 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39662     IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
39663     {
39664       offset = offset_;
39665       return *this;
39666     }
39667 
setVertexBindingUnitVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39668     IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
39669     {
39670       vertexBindingUnit = vertexBindingUnit_;
39671       return *this;
39672     }
39673 
setVertexDynamicStrideVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39674     IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT
39675     {
39676       vertexDynamicStride = vertexDynamicStride_;
39677       return *this;
39678     }
39679 
setPushconstantPipelineLayoutVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39680     IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
39681     {
39682       pushconstantPipelineLayout = pushconstantPipelineLayout_;
39683       return *this;
39684     }
39685 
setPushconstantShaderStageFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39686     IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
39687     {
39688       pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
39689       return *this;
39690     }
39691 
setPushconstantOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39692     IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT
39693     {
39694       pushconstantOffset = pushconstantOffset_;
39695       return *this;
39696     }
39697 
setPushconstantSizeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39698     IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT
39699     {
39700       pushconstantSize = pushconstantSize_;
39701       return *this;
39702     }
39703 
setIndirectStateFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39704     IndirectCommandsLayoutTokenNV & setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
39705     {
39706       indirectStateFlags = indirectStateFlags_;
39707       return *this;
39708     }
39709 
setIndexTypeCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39710     IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT
39711     {
39712       indexTypeCount = indexTypeCount_;
39713       return *this;
39714     }
39715 
setPIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39716     IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ ) VULKAN_HPP_NOEXCEPT
39717     {
39718       pIndexTypes = pIndexTypes_;
39719       return *this;
39720     }
39721 
39722 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39723     IndirectCommandsLayoutTokenNV & setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_ ) VULKAN_HPP_NOEXCEPT
39724     {
39725       indexTypeCount = static_cast<uint32_t>( indexTypes_.size() );
39726       pIndexTypes = indexTypes_.data();
39727       return *this;
39728     }
39729 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39730 
setPIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39731     IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t* pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
39732     {
39733       pIndexTypeValues = pIndexTypeValues_;
39734       return *this;
39735     }
39736 
39737 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39738     IndirectCommandsLayoutTokenNV & setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT
39739     {
39740       indexTypeCount = static_cast<uint32_t>( indexTypeValues_.size() );
39741       pIndexTypeValues = indexTypeValues_.data();
39742       return *this;
39743     }
39744 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39745 
39746 
operator VkIndirectCommandsLayoutTokenNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39747     operator VkIndirectCommandsLayoutTokenNV const&() const VULKAN_HPP_NOEXCEPT
39748     {
39749       return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV*>( this );
39750     }
39751 
operator VkIndirectCommandsLayoutTokenNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39752     operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
39753     {
39754       return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV*>( this );
39755     }
39756 
39757 
39758 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39759     auto operator<=>( IndirectCommandsLayoutTokenNV const& ) const = default;
39760 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39761     bool operator==( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
39762     {
39763       return ( sType == rhs.sType )
39764           && ( pNext == rhs.pNext )
39765           && ( tokenType == rhs.tokenType )
39766           && ( stream == rhs.stream )
39767           && ( offset == rhs.offset )
39768           && ( vertexBindingUnit == rhs.vertexBindingUnit )
39769           && ( vertexDynamicStride == rhs.vertexDynamicStride )
39770           && ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout )
39771           && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags )
39772           && ( pushconstantOffset == rhs.pushconstantOffset )
39773           && ( pushconstantSize == rhs.pushconstantSize )
39774           && ( indirectStateFlags == rhs.indirectStateFlags )
39775           && ( indexTypeCount == rhs.indexTypeCount )
39776           && ( pIndexTypes == rhs.pIndexTypes )
39777           && ( pIndexTypeValues == rhs.pIndexTypeValues );
39778     }
39779 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV39780     bool operator!=( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
39781     {
39782       return !operator==( rhs );
39783     }
39784 #endif
39785 
39786 
39787 
39788   public:
39789     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV;
39790     const void* pNext = {};
39791     VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup;
39792     uint32_t stream = {};
39793     uint32_t offset = {};
39794     uint32_t vertexBindingUnit = {};
39795     VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {};
39796     VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {};
39797     VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {};
39798     uint32_t pushconstantOffset = {};
39799     uint32_t pushconstantSize = {};
39800     VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {};
39801     uint32_t indexTypeCount = {};
39802     const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes = {};
39803     const uint32_t* pIndexTypeValues = {};
39804 
39805   };
39806   static_assert( sizeof( IndirectCommandsLayoutTokenNV ) == sizeof( VkIndirectCommandsLayoutTokenNV ), "struct and wrapper have different size!" );
39807   static_assert( std::is_standard_layout<IndirectCommandsLayoutTokenNV>::value, "struct wrapper is not a standard layout!" );
39808 
39809   template <>
39810   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenNV>
39811   {
39812     using Type = IndirectCommandsLayoutTokenNV;
39813   };
39814 
39815   struct IndirectCommandsLayoutCreateInfoNV
39816   {
39817     static const bool allowDuplicate = false;
39818     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
39819 
39820 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39821     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
39822     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( tokenCount_ ), pTokens( pTokens_ ), streamCount( streamCount_ ), pStreamStrides( pStreamStrides_ )
39823     {}
39824 
39825     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39826 
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39827     IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
39828       : IndirectCommandsLayoutCreateInfoNV( *reinterpret_cast<IndirectCommandsLayoutCreateInfoNV const *>( &rhs ) )
39829     {}
39830 
39831 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39832     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_ = {} )
39833     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( static_cast<uint32_t>( tokens_.size() ) ), pTokens( tokens_.data() ), streamCount( static_cast<uint32_t>( streamStrides_.size() ) ), pStreamStrides( streamStrides_.data() )
39834     {}
39835 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39836 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39837 
39838     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39839 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39840     IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
39841     {
39842       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const *>( &rhs );
39843       return *this;
39844     }
39845 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39846     IndirectCommandsLayoutCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39847     {
39848       pNext = pNext_;
39849       return *this;
39850     }
39851 
setFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39852     IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
39853     {
39854       flags = flags_;
39855       return *this;
39856     }
39857 
setPipelineBindPointVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39858     IndirectCommandsLayoutCreateInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
39859     {
39860       pipelineBindPoint = pipelineBindPoint_;
39861       return *this;
39862     }
39863 
setTokenCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39864     IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
39865     {
39866       tokenCount = tokenCount_;
39867       return *this;
39868     }
39869 
setPTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39870     IndirectCommandsLayoutCreateInfoNV & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ ) VULKAN_HPP_NOEXCEPT
39871     {
39872       pTokens = pTokens_;
39873       return *this;
39874     }
39875 
39876 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39877     IndirectCommandsLayoutCreateInfoNV & setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_ ) VULKAN_HPP_NOEXCEPT
39878     {
39879       tokenCount = static_cast<uint32_t>( tokens_.size() );
39880       pTokens = tokens_.data();
39881       return *this;
39882     }
39883 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39884 
setStreamCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39885     IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
39886     {
39887       streamCount = streamCount_;
39888       return *this;
39889     }
39890 
setPStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39891     IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t* pStreamStrides_ ) VULKAN_HPP_NOEXCEPT
39892     {
39893       pStreamStrides = pStreamStrides_;
39894       return *this;
39895     }
39896 
39897 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39898     IndirectCommandsLayoutCreateInfoNV & setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ ) VULKAN_HPP_NOEXCEPT
39899     {
39900       streamCount = static_cast<uint32_t>( streamStrides_.size() );
39901       pStreamStrides = streamStrides_.data();
39902       return *this;
39903     }
39904 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39905 
39906 
operator VkIndirectCommandsLayoutCreateInfoNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39907     operator VkIndirectCommandsLayoutCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
39908     {
39909       return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( this );
39910     }
39911 
operator VkIndirectCommandsLayoutCreateInfoNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39912     operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
39913     {
39914       return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV*>( this );
39915     }
39916 
39917 
39918 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39919     auto operator<=>( IndirectCommandsLayoutCreateInfoNV const& ) const = default;
39920 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39921     bool operator==( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
39922     {
39923       return ( sType == rhs.sType )
39924           && ( pNext == rhs.pNext )
39925           && ( flags == rhs.flags )
39926           && ( pipelineBindPoint == rhs.pipelineBindPoint )
39927           && ( tokenCount == rhs.tokenCount )
39928           && ( pTokens == rhs.pTokens )
39929           && ( streamCount == rhs.streamCount )
39930           && ( pStreamStrides == rhs.pStreamStrides );
39931     }
39932 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39933     bool operator!=( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
39934     {
39935       return !operator==( rhs );
39936     }
39937 #endif
39938 
39939 
39940 
39941   public:
39942     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
39943     const void* pNext = {};
39944     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {};
39945     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
39946     uint32_t tokenCount = {};
39947     const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens = {};
39948     uint32_t streamCount = {};
39949     const uint32_t* pStreamStrides = {};
39950 
39951   };
39952   static_assert( sizeof( IndirectCommandsLayoutCreateInfoNV ) == sizeof( VkIndirectCommandsLayoutCreateInfoNV ), "struct and wrapper have different size!" );
39953   static_assert( std::is_standard_layout<IndirectCommandsLayoutCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
39954 
39955   template <>
39956   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoNV>
39957   {
39958     using Type = IndirectCommandsLayoutCreateInfoNV;
39959   };
39960 
39961   struct PipelineCacheCreateInfo
39962   {
39963     static const bool allowDuplicate = false;
39964     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo;
39965 
39966 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39967     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT
39968     : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
39969     {}
39970 
39971     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39972 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39973     PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39974       : PipelineCacheCreateInfo( *reinterpret_cast<PipelineCacheCreateInfo const *>( &rhs ) )
39975     {}
39976 
39977 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39978     template <typename T>
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39979     PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ )
39980     : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
39981     {}
39982 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39983 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39984 
39985     VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39986 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39987     PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39988     {
39989       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const *>( &rhs );
39990       return *this;
39991     }
39992 
setPNextVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39993     PipelineCacheCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39994     {
39995       pNext = pNext_;
39996       return *this;
39997     }
39998 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39999     PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40000     {
40001       flags = flags_;
40002       return *this;
40003     }
40004 
setInitialDataSizeVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo40005     PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
40006     {
40007       initialDataSize = initialDataSize_;
40008       return *this;
40009     }
40010 
setPInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo40011     PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
40012     {
40013       pInitialData = pInitialData_;
40014       return *this;
40015     }
40016 
40017 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40018     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo40019     PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
40020     {
40021       initialDataSize = initialData_.size() * sizeof(T);
40022       pInitialData = initialData_.data();
40023       return *this;
40024     }
40025 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40026 
40027 
operator VkPipelineCacheCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo40028     operator VkPipelineCacheCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40029     {
40030       return *reinterpret_cast<const VkPipelineCacheCreateInfo*>( this );
40031     }
40032 
operator VkPipelineCacheCreateInfo&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo40033     operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
40034     {
40035       return *reinterpret_cast<VkPipelineCacheCreateInfo*>( this );
40036     }
40037 
40038 
40039 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40040     auto operator<=>( PipelineCacheCreateInfo const& ) const = default;
40041 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo40042     bool operator==( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40043     {
40044       return ( sType == rhs.sType )
40045           && ( pNext == rhs.pNext )
40046           && ( flags == rhs.flags )
40047           && ( initialDataSize == rhs.initialDataSize )
40048           && ( pInitialData == rhs.pInitialData );
40049     }
40050 
operator !=VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo40051     bool operator!=( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40052     {
40053       return !operator==( rhs );
40054     }
40055 #endif
40056 
40057 
40058 
40059   public:
40060     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo;
40061     const void* pNext = {};
40062     VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {};
40063     size_t initialDataSize = {};
40064     const void* pInitialData = {};
40065 
40066   };
40067   static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" );
40068   static_assert( std::is_standard_layout<PipelineCacheCreateInfo>::value, "struct wrapper is not a standard layout!" );
40069 
40070   template <>
40071   struct CppType<StructureType, StructureType::ePipelineCacheCreateInfo>
40072   {
40073     using Type = PipelineCacheCreateInfo;
40074   };
40075 
40076   struct PushConstantRange
40077   {
40078 
40079 
40080 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange40081     VULKAN_HPP_CONSTEXPR PushConstantRange(VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {}) VULKAN_HPP_NOEXCEPT
40082     : stageFlags( stageFlags_ ), offset( offset_ ), size( size_ )
40083     {}
40084 
40085     VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40086 
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange40087     PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
40088       : PushConstantRange( *reinterpret_cast<PushConstantRange const *>( &rhs ) )
40089     {}
40090 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40091 
40092     VULKAN_HPP_CONSTEXPR_14 PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40093 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange40094     PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
40095     {
40096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
40097       return *this;
40098     }
40099 
setStageFlagsVULKAN_HPP_NAMESPACE::PushConstantRange40100     PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
40101     {
40102       stageFlags = stageFlags_;
40103       return *this;
40104     }
40105 
setOffsetVULKAN_HPP_NAMESPACE::PushConstantRange40106     PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
40107     {
40108       offset = offset_;
40109       return *this;
40110     }
40111 
setSizeVULKAN_HPP_NAMESPACE::PushConstantRange40112     PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
40113     {
40114       size = size_;
40115       return *this;
40116     }
40117 
40118 
operator VkPushConstantRange const&VULKAN_HPP_NAMESPACE::PushConstantRange40119     operator VkPushConstantRange const&() const VULKAN_HPP_NOEXCEPT
40120     {
40121       return *reinterpret_cast<const VkPushConstantRange*>( this );
40122     }
40123 
operator VkPushConstantRange&VULKAN_HPP_NAMESPACE::PushConstantRange40124     operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
40125     {
40126       return *reinterpret_cast<VkPushConstantRange*>( this );
40127     }
40128 
40129 
40130 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40131     auto operator<=>( PushConstantRange const& ) const = default;
40132 #else
operator ==VULKAN_HPP_NAMESPACE::PushConstantRange40133     bool operator==( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
40134     {
40135       return ( stageFlags == rhs.stageFlags )
40136           && ( offset == rhs.offset )
40137           && ( size == rhs.size );
40138     }
40139 
operator !=VULKAN_HPP_NAMESPACE::PushConstantRange40140     bool operator!=( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
40141     {
40142       return !operator==( rhs );
40143     }
40144 #endif
40145 
40146 
40147 
40148   public:
40149     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
40150     uint32_t offset = {};
40151     uint32_t size = {};
40152 
40153   };
40154   static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" );
40155   static_assert( std::is_standard_layout<PushConstantRange>::value, "struct wrapper is not a standard layout!" );
40156 
40157   struct PipelineLayoutCreateInfo
40158   {
40159     static const bool allowDuplicate = false;
40160     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo;
40161 
40162 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40163     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
40164     : flags( flags_ ), setLayoutCount( setLayoutCount_ ), pSetLayouts( pSetLayouts_ ), pushConstantRangeCount( pushConstantRangeCount_ ), pPushConstantRanges( pPushConstantRanges_ )
40165     {}
40166 
40167     VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40168 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40169     PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40170       : PipelineLayoutCreateInfo( *reinterpret_cast<PipelineLayoutCreateInfo const *>( &rhs ) )
40171     {}
40172 
40173 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40174     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_ = {} )
40175     : flags( flags_ ), setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ), pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) ), pPushConstantRanges( pushConstantRanges_.data() )
40176     {}
40177 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40178 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40179 
40180     VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40181 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40182     PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40183     {
40184       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const *>( &rhs );
40185       return *this;
40186     }
40187 
setPNextVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40188     PipelineLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40189     {
40190       pNext = pNext_;
40191       return *this;
40192     }
40193 
setFlagsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40194     PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40195     {
40196       flags = flags_;
40197       return *this;
40198     }
40199 
setSetLayoutCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40200     PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
40201     {
40202       setLayoutCount = setLayoutCount_;
40203       return *this;
40204     }
40205 
setPSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40206     PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
40207     {
40208       pSetLayouts = pSetLayouts_;
40209       return *this;
40210     }
40211 
40212 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40213     PipelineLayoutCreateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
40214     {
40215       setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
40216       pSetLayouts = setLayouts_.data();
40217       return *this;
40218     }
40219 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40220 
setPushConstantRangeCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40221     PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
40222     {
40223       pushConstantRangeCount = pushConstantRangeCount_;
40224       return *this;
40225     }
40226 
setPPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40227     PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
40228     {
40229       pPushConstantRanges = pPushConstantRanges_;
40230       return *this;
40231     }
40232 
40233 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40234     PipelineLayoutCreateInfo & setPushConstantRanges( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
40235     {
40236       pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
40237       pPushConstantRanges = pushConstantRanges_.data();
40238       return *this;
40239     }
40240 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40241 
40242 
operator VkPipelineLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40243     operator VkPipelineLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40244     {
40245       return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>( this );
40246     }
40247 
operator VkPipelineLayoutCreateInfo&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40248     operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
40249     {
40250       return *reinterpret_cast<VkPipelineLayoutCreateInfo*>( this );
40251     }
40252 
40253 
40254 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40255     auto operator<=>( PipelineLayoutCreateInfo const& ) const = default;
40256 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40257     bool operator==( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40258     {
40259       return ( sType == rhs.sType )
40260           && ( pNext == rhs.pNext )
40261           && ( flags == rhs.flags )
40262           && ( setLayoutCount == rhs.setLayoutCount )
40263           && ( pSetLayouts == rhs.pSetLayouts )
40264           && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
40265           && ( pPushConstantRanges == rhs.pPushConstantRanges );
40266     }
40267 
operator !=VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo40268     bool operator!=( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40269     {
40270       return !operator==( rhs );
40271     }
40272 #endif
40273 
40274 
40275 
40276   public:
40277     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
40278     const void* pNext = {};
40279     VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {};
40280     uint32_t setLayoutCount = {};
40281     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
40282     uint32_t pushConstantRangeCount = {};
40283     const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges = {};
40284 
40285   };
40286   static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" );
40287   static_assert( std::is_standard_layout<PipelineLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
40288 
40289   template <>
40290   struct CppType<StructureType, StructureType::ePipelineLayoutCreateInfo>
40291   {
40292     using Type = PipelineLayoutCreateInfo;
40293   };
40294 
40295   struct PrivateDataSlotCreateInfoEXT
40296   {
40297     static const bool allowDuplicate = false;
40298     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfoEXT;
40299 
40300 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40301     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
40302     : flags( flags_ )
40303     {}
40304 
40305     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40306 
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40307     PrivateDataSlotCreateInfoEXT( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40308       : PrivateDataSlotCreateInfoEXT( *reinterpret_cast<PrivateDataSlotCreateInfoEXT const *>( &rhs ) )
40309     {}
40310 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40311 
40312     VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfoEXT & operator=( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40313 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40314     PrivateDataSlotCreateInfoEXT & operator=( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40315     {
40316       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT const *>( &rhs );
40317       return *this;
40318     }
40319 
setPNextVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40320     PrivateDataSlotCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40321     {
40322       pNext = pNext_;
40323       return *this;
40324     }
40325 
setFlagsVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40326     PrivateDataSlotCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
40327     {
40328       flags = flags_;
40329       return *this;
40330     }
40331 
40332 
operator VkPrivateDataSlotCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40333     operator VkPrivateDataSlotCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
40334     {
40335       return *reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( this );
40336     }
40337 
operator VkPrivateDataSlotCreateInfoEXT&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40338     operator VkPrivateDataSlotCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
40339     {
40340       return *reinterpret_cast<VkPrivateDataSlotCreateInfoEXT*>( this );
40341     }
40342 
40343 
40344 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40345     auto operator<=>( PrivateDataSlotCreateInfoEXT const& ) const = default;
40346 #else
operator ==VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40347     bool operator==( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
40348     {
40349       return ( sType == rhs.sType )
40350           && ( pNext == rhs.pNext )
40351           && ( flags == rhs.flags );
40352     }
40353 
operator !=VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT40354     bool operator!=( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
40355     {
40356       return !operator==( rhs );
40357     }
40358 #endif
40359 
40360 
40361 
40362   public:
40363     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfoEXT;
40364     const void* pNext = {};
40365     VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags = {};
40366 
40367   };
40368   static_assert( sizeof( PrivateDataSlotCreateInfoEXT ) == sizeof( VkPrivateDataSlotCreateInfoEXT ), "struct and wrapper have different size!" );
40369   static_assert( std::is_standard_layout<PrivateDataSlotCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
40370 
40371   template <>
40372   struct CppType<StructureType, StructureType::ePrivateDataSlotCreateInfoEXT>
40373   {
40374     using Type = PrivateDataSlotCreateInfoEXT;
40375   };
40376 
40377   class PrivateDataSlotEXT
40378   {
40379   public:
40380     using CType = VkPrivateDataSlotEXT;
40381 
40382     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT;
40383     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
40384 
40385   public:
PrivateDataSlotEXT()40386     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT() VULKAN_HPP_NOEXCEPT
40387       : m_privateDataSlotEXT(VK_NULL_HANDLE)
40388     {}
40389 
PrivateDataSlotEXT(std::nullptr_t)40390     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
40391       : m_privateDataSlotEXT(VK_NULL_HANDLE)
40392     {}
40393 
PrivateDataSlotEXT(VkPrivateDataSlotEXT privateDataSlotEXT)40394     VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT
40395       : m_privateDataSlotEXT( privateDataSlotEXT )
40396     {}
40397 
40398 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPrivateDataSlotEXT privateDataSlotEXT)40399     PrivateDataSlotEXT & operator=(VkPrivateDataSlotEXT privateDataSlotEXT) VULKAN_HPP_NOEXCEPT
40400     {
40401       m_privateDataSlotEXT = privateDataSlotEXT;
40402       return *this;
40403     }
40404 #endif
40405 
operator =(std::nullptr_t)40406     PrivateDataSlotEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
40407     {
40408       m_privateDataSlotEXT = VK_NULL_HANDLE;
40409       return *this;
40410     }
40411 
40412 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40413     auto operator<=>( PrivateDataSlotEXT const& ) const = default;
40414 #else
operator ==(PrivateDataSlotEXT const & rhs) const40415     bool operator==( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40416     {
40417       return m_privateDataSlotEXT == rhs.m_privateDataSlotEXT;
40418     }
40419 
operator !=(PrivateDataSlotEXT const & rhs) const40420     bool operator!=(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40421     {
40422       return m_privateDataSlotEXT != rhs.m_privateDataSlotEXT;
40423     }
40424 
operator <(PrivateDataSlotEXT const & rhs) const40425     bool operator<(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40426     {
40427       return m_privateDataSlotEXT < rhs.m_privateDataSlotEXT;
40428     }
40429 #endif
40430 
operator VkPrivateDataSlotEXT() const40431     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPrivateDataSlotEXT() const VULKAN_HPP_NOEXCEPT
40432     {
40433       return m_privateDataSlotEXT;
40434     }
40435 
operator bool() const40436     explicit operator bool() const VULKAN_HPP_NOEXCEPT
40437     {
40438       return m_privateDataSlotEXT != VK_NULL_HANDLE;
40439     }
40440 
operator !() const40441     bool operator!() const VULKAN_HPP_NOEXCEPT
40442     {
40443       return m_privateDataSlotEXT == VK_NULL_HANDLE;
40444     }
40445 
40446   private:
40447     VkPrivateDataSlotEXT m_privateDataSlotEXT;
40448   };
40449   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT ) == sizeof( VkPrivateDataSlotEXT ), "handle and wrapper have different size!" );
40450 
40451   template <>
40452   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePrivateDataSlotEXT>
40453   {
40454     using type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT;
40455   };
40456 
40457   template <>
40458   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT>
40459   {
40460     using Type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT;
40461   };
40462 
40463 
40464 
40465   template <>
40466   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
40467   {
40468     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
40469   };
40470 
40471   struct QueryPoolCreateInfo
40472   {
40473     static const bool allowDuplicate = false;
40474     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo;
40475 
40476 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40477     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
40478     : flags( flags_ ), queryType( queryType_ ), queryCount( queryCount_ ), pipelineStatistics( pipelineStatistics_ )
40479     {}
40480 
40481     VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40482 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40483     QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40484       : QueryPoolCreateInfo( *reinterpret_cast<QueryPoolCreateInfo const *>( &rhs ) )
40485     {}
40486 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40487 
40488     VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40489 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40490     QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40491     {
40492       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const *>( &rhs );
40493       return *this;
40494     }
40495 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40496     QueryPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40497     {
40498       pNext = pNext_;
40499       return *this;
40500     }
40501 
setFlagsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40502     QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40503     {
40504       flags = flags_;
40505       return *this;
40506     }
40507 
setQueryTypeVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40508     QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT
40509     {
40510       queryType = queryType_;
40511       return *this;
40512     }
40513 
setQueryCountVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40514     QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
40515     {
40516       queryCount = queryCount_;
40517       return *this;
40518     }
40519 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40520     QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
40521     {
40522       pipelineStatistics = pipelineStatistics_;
40523       return *this;
40524     }
40525 
40526 
operator VkQueryPoolCreateInfo const&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40527     operator VkQueryPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40528     {
40529       return *reinterpret_cast<const VkQueryPoolCreateInfo*>( this );
40530     }
40531 
operator VkQueryPoolCreateInfo&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40532     operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
40533     {
40534       return *reinterpret_cast<VkQueryPoolCreateInfo*>( this );
40535     }
40536 
40537 
40538 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40539     auto operator<=>( QueryPoolCreateInfo const& ) const = default;
40540 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40541     bool operator==( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40542     {
40543       return ( sType == rhs.sType )
40544           && ( pNext == rhs.pNext )
40545           && ( flags == rhs.flags )
40546           && ( queryType == rhs.queryType )
40547           && ( queryCount == rhs.queryCount )
40548           && ( pipelineStatistics == rhs.pipelineStatistics );
40549     }
40550 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo40551     bool operator!=( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40552     {
40553       return !operator==( rhs );
40554     }
40555 #endif
40556 
40557 
40558 
40559   public:
40560     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo;
40561     const void* pNext = {};
40562     VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {};
40563     VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion;
40564     uint32_t queryCount = {};
40565     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
40566 
40567   };
40568   static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" );
40569   static_assert( std::is_standard_layout<QueryPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
40570 
40571   template <>
40572   struct CppType<StructureType, StructureType::eQueryPoolCreateInfo>
40573   {
40574     using Type = QueryPoolCreateInfo;
40575   };
40576 
40577   struct RayTracingShaderGroupCreateInfoKHR
40578   {
40579     static const bool allowDuplicate = false;
40580     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
40581 
40582 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40583     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
40584     : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ), pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
40585     {}
40586 
40587     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40588 
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40589     RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40590       : RayTracingShaderGroupCreateInfoKHR( *reinterpret_cast<RayTracingShaderGroupCreateInfoKHR const *>( &rhs ) )
40591     {}
40592 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40593 
40594     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40595 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40596     RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40597     {
40598       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const *>( &rhs );
40599       return *this;
40600     }
40601 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40602     RayTracingShaderGroupCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40603     {
40604       pNext = pNext_;
40605       return *this;
40606     }
40607 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40608     RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
40609     {
40610       type = type_;
40611       return *this;
40612     }
40613 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40614     RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
40615     {
40616       generalShader = generalShader_;
40617       return *this;
40618     }
40619 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40620     RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
40621     {
40622       closestHitShader = closestHitShader_;
40623       return *this;
40624     }
40625 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40626     RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
40627     {
40628       anyHitShader = anyHitShader_;
40629       return *this;
40630     }
40631 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40632     RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
40633     {
40634       intersectionShader = intersectionShader_;
40635       return *this;
40636     }
40637 
setPShaderGroupCaptureReplayHandleVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40638     RayTracingShaderGroupCreateInfoKHR & setPShaderGroupCaptureReplayHandle( const void* pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
40639     {
40640       pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
40641       return *this;
40642     }
40643 
40644 
operator VkRayTracingShaderGroupCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40645     operator VkRayTracingShaderGroupCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
40646     {
40647       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR*>( this );
40648     }
40649 
operator VkRayTracingShaderGroupCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40650     operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
40651     {
40652       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR*>( this );
40653     }
40654 
40655 
40656 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40657     auto operator<=>( RayTracingShaderGroupCreateInfoKHR const& ) const = default;
40658 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40659     bool operator==( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40660     {
40661       return ( sType == rhs.sType )
40662           && ( pNext == rhs.pNext )
40663           && ( type == rhs.type )
40664           && ( generalShader == rhs.generalShader )
40665           && ( closestHitShader == rhs.closestHitShader )
40666           && ( anyHitShader == rhs.anyHitShader )
40667           && ( intersectionShader == rhs.intersectionShader )
40668           && ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle );
40669     }
40670 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR40671     bool operator!=( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40672     {
40673       return !operator==( rhs );
40674     }
40675 #endif
40676 
40677 
40678 
40679   public:
40680     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
40681     const void* pNext = {};
40682     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
40683     uint32_t generalShader = {};
40684     uint32_t closestHitShader = {};
40685     uint32_t anyHitShader = {};
40686     uint32_t intersectionShader = {};
40687     const void* pShaderGroupCaptureReplayHandle = {};
40688 
40689   };
40690   static_assert( sizeof( RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ), "struct and wrapper have different size!" );
40691   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
40692 
40693   template <>
40694   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoKHR>
40695   {
40696     using Type = RayTracingShaderGroupCreateInfoKHR;
40697   };
40698 
40699   struct PipelineLibraryCreateInfoKHR
40700   {
40701     static const bool allowDuplicate = false;
40702     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR;
40703 
40704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40705     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR(uint32_t libraryCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ = {}) VULKAN_HPP_NOEXCEPT
40706     : libraryCount( libraryCount_ ), pLibraries( pLibraries_ )
40707     {}
40708 
40709     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40710 
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40711     PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40712       : PipelineLibraryCreateInfoKHR( *reinterpret_cast<PipelineLibraryCreateInfoKHR const *>( &rhs ) )
40713     {}
40714 
40715 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40716     PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ )
40717     : libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
40718     {}
40719 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40720 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40721 
40722     VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40723 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40724     PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40725     {
40726       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
40727       return *this;
40728     }
40729 
setPNextVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40730     PipelineLibraryCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40731     {
40732       pNext = pNext_;
40733       return *this;
40734     }
40735 
setLibraryCountVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40736     PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
40737     {
40738       libraryCount = libraryCount_;
40739       return *this;
40740     }
40741 
setPLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40742     PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ ) VULKAN_HPP_NOEXCEPT
40743     {
40744       pLibraries = pLibraries_;
40745       return *this;
40746     }
40747 
40748 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40749     PipelineLibraryCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
40750     {
40751       libraryCount = static_cast<uint32_t>( libraries_.size() );
40752       pLibraries = libraries_.data();
40753       return *this;
40754     }
40755 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40756 
40757 
operator VkPipelineLibraryCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40758     operator VkPipelineLibraryCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
40759     {
40760       return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>( this );
40761     }
40762 
operator VkPipelineLibraryCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40763     operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
40764     {
40765       return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR*>( this );
40766     }
40767 
40768 
40769 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40770     auto operator<=>( PipelineLibraryCreateInfoKHR const& ) const = default;
40771 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40772     bool operator==( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40773     {
40774       return ( sType == rhs.sType )
40775           && ( pNext == rhs.pNext )
40776           && ( libraryCount == rhs.libraryCount )
40777           && ( pLibraries == rhs.pLibraries );
40778     }
40779 
operator !=VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR40780     bool operator!=( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40781     {
40782       return !operator==( rhs );
40783     }
40784 #endif
40785 
40786 
40787 
40788   public:
40789     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR;
40790     const void* pNext = {};
40791     uint32_t libraryCount = {};
40792     const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries = {};
40793 
40794   };
40795   static_assert( sizeof( PipelineLibraryCreateInfoKHR ) == sizeof( VkPipelineLibraryCreateInfoKHR ), "struct and wrapper have different size!" );
40796   static_assert( std::is_standard_layout<PipelineLibraryCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
40797 
40798   template <>
40799   struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
40800   {
40801     using Type = PipelineLibraryCreateInfoKHR;
40802   };
40803 
40804   struct RayTracingPipelineInterfaceCreateInfoKHR
40805   {
40806     static const bool allowDuplicate = false;
40807     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
40808 
40809 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40810     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR(uint32_t maxPipelineRayPayloadSize_ = {}, uint32_t maxPipelineRayHitAttributeSize_ = {}) VULKAN_HPP_NOEXCEPT
40811     : maxPipelineRayPayloadSize( maxPipelineRayPayloadSize_ ), maxPipelineRayHitAttributeSize( maxPipelineRayHitAttributeSize_ )
40812     {}
40813 
40814     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40815 
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40816     RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40817       : RayTracingPipelineInterfaceCreateInfoKHR( *reinterpret_cast<RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs ) )
40818     {}
40819 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40820 
40821     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40822 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40823     RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40824     {
40825       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs );
40826       return *this;
40827     }
40828 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40829     RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40830     {
40831       pNext = pNext_;
40832       return *this;
40833     }
40834 
setMaxPipelineRayPayloadSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40835     RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayPayloadSize( uint32_t maxPipelineRayPayloadSize_ ) VULKAN_HPP_NOEXCEPT
40836     {
40837       maxPipelineRayPayloadSize = maxPipelineRayPayloadSize_;
40838       return *this;
40839     }
40840 
setMaxPipelineRayHitAttributeSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40841     RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT
40842     {
40843       maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_;
40844       return *this;
40845     }
40846 
40847 
operator VkRayTracingPipelineInterfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40848     operator VkRayTracingPipelineInterfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
40849     {
40850       return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
40851     }
40852 
operator VkRayTracingPipelineInterfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40853     operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
40854     {
40855       return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
40856     }
40857 
40858 
40859 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40860     auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const& ) const = default;
40861 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40862     bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40863     {
40864       return ( sType == rhs.sType )
40865           && ( pNext == rhs.pNext )
40866           && ( maxPipelineRayPayloadSize == rhs.maxPipelineRayPayloadSize )
40867           && ( maxPipelineRayHitAttributeSize == rhs.maxPipelineRayHitAttributeSize );
40868     }
40869 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR40870     bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40871     {
40872       return !operator==( rhs );
40873     }
40874 #endif
40875 
40876 
40877 
40878   public:
40879     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
40880     const void* pNext = {};
40881     uint32_t maxPipelineRayPayloadSize = {};
40882     uint32_t maxPipelineRayHitAttributeSize = {};
40883 
40884   };
40885   static_assert( sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ), "struct and wrapper have different size!" );
40886   static_assert( std::is_standard_layout<RayTracingPipelineInterfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
40887 
40888   template <>
40889   struct CppType<StructureType, StructureType::eRayTracingPipelineInterfaceCreateInfoKHR>
40890   {
40891     using Type = RayTracingPipelineInterfaceCreateInfoKHR;
40892   };
40893 
40894   struct RayTracingPipelineCreateInfoKHR
40895   {
40896     static const bool allowDuplicate = false;
40897     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR;
40898 
40899 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40900     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 maxPipelineRayRecursionDepth_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT
40901     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ), pLibraryInfo( pLibraryInfo_ ), pLibraryInterface( pLibraryInterface_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
40902     {}
40903 
40904     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40905 
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40906     RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40907       : RayTracingPipelineCreateInfoKHR( *reinterpret_cast<RayTracingPipelineCreateInfoKHR const *>( &rhs ) )
40908     {}
40909 
40910 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40911     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 maxPipelineRayRecursionDepth_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} )
40912     : flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ), pLibraryInfo( pLibraryInfo_ ), pLibraryInterface( pLibraryInterface_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
40913     {}
40914 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40915 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40916 
40917     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40918 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40919     RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40920     {
40921       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const *>( &rhs );
40922       return *this;
40923     }
40924 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40925     RayTracingPipelineCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40926     {
40927       pNext = pNext_;
40928       return *this;
40929     }
40930 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40931     RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40932     {
40933       flags = flags_;
40934       return *this;
40935     }
40936 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40937     RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
40938     {
40939       stageCount = stageCount_;
40940       return *this;
40941     }
40942 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40943     RayTracingPipelineCreateInfoKHR & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
40944     {
40945       pStages = pStages_;
40946       return *this;
40947     }
40948 
40949 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40950     RayTracingPipelineCreateInfoKHR & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
40951     {
40952       stageCount = static_cast<uint32_t>( stages_.size() );
40953       pStages = stages_.data();
40954       return *this;
40955     }
40956 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40957 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40958     RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
40959     {
40960       groupCount = groupCount_;
40961       return *this;
40962     }
40963 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40964     RayTracingPipelineCreateInfoKHR & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ ) VULKAN_HPP_NOEXCEPT
40965     {
40966       pGroups = pGroups_;
40967       return *this;
40968     }
40969 
40970 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40971     RayTracingPipelineCreateInfoKHR & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT
40972     {
40973       groupCount = static_cast<uint32_t>( groups_.size() );
40974       pGroups = groups_.data();
40975       return *this;
40976     }
40977 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40978 
setMaxPipelineRayRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40979     RayTracingPipelineCreateInfoKHR & setMaxPipelineRayRecursionDepth( uint32_t maxPipelineRayRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
40980     {
40981       maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth_;
40982       return *this;
40983     }
40984 
setPLibraryInfoVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40985     RayTracingPipelineCreateInfoKHR & setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
40986     {
40987       pLibraryInfo = pLibraryInfo_;
40988       return *this;
40989     }
40990 
setPLibraryInterfaceVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40991     RayTracingPipelineCreateInfoKHR & setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT
40992     {
40993       pLibraryInterface = pLibraryInterface_;
40994       return *this;
40995     }
40996 
setPDynamicStateVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40997     RayTracingPipelineCreateInfoKHR & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT
40998     {
40999       pDynamicState = pDynamicState_;
41000       return *this;
41001     }
41002 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR41003     RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
41004     {
41005       layout = layout_;
41006       return *this;
41007     }
41008 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR41009     RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
41010     {
41011       basePipelineHandle = basePipelineHandle_;
41012       return *this;
41013     }
41014 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR41015     RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
41016     {
41017       basePipelineIndex = basePipelineIndex_;
41018       return *this;
41019     }
41020 
41021 
operator VkRayTracingPipelineCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR41022     operator VkRayTracingPipelineCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
41023     {
41024       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( this );
41025     }
41026 
operator VkRayTracingPipelineCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR41027     operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
41028     {
41029       return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR*>( this );
41030     }
41031 
41032 
41033 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41034     auto operator<=>( RayTracingPipelineCreateInfoKHR const& ) const = default;
41035 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR41036     bool operator==( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
41037     {
41038       return ( sType == rhs.sType )
41039           && ( pNext == rhs.pNext )
41040           && ( flags == rhs.flags )
41041           && ( stageCount == rhs.stageCount )
41042           && ( pStages == rhs.pStages )
41043           && ( groupCount == rhs.groupCount )
41044           && ( pGroups == rhs.pGroups )
41045           && ( maxPipelineRayRecursionDepth == rhs.maxPipelineRayRecursionDepth )
41046           && ( pLibraryInfo == rhs.pLibraryInfo )
41047           && ( pLibraryInterface == rhs.pLibraryInterface )
41048           && ( pDynamicState == rhs.pDynamicState )
41049           && ( layout == rhs.layout )
41050           && ( basePipelineHandle == rhs.basePipelineHandle )
41051           && ( basePipelineIndex == rhs.basePipelineIndex );
41052     }
41053 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR41054     bool operator!=( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
41055     {
41056       return !operator==( rhs );
41057     }
41058 #endif
41059 
41060 
41061 
41062   public:
41063     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR;
41064     const void* pNext = {};
41065     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
41066     uint32_t stageCount = {};
41067     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
41068     uint32_t groupCount = {};
41069     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups = {};
41070     uint32_t maxPipelineRayRecursionDepth = {};
41071     const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo = {};
41072     const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface = {};
41073     const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {};
41074     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
41075     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
41076     int32_t basePipelineIndex = {};
41077 
41078   };
41079   static_assert( sizeof( RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ), "struct and wrapper have different size!" );
41080   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
41081 
41082   template <>
41083   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoKHR>
41084   {
41085     using Type = RayTracingPipelineCreateInfoKHR;
41086   };
41087 
41088   struct RayTracingShaderGroupCreateInfoNV
41089   {
41090     static const bool allowDuplicate = false;
41091     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV;
41092 
41093 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41094     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
41095     : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ )
41096     {}
41097 
41098     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41099 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41100     RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
41101       : RayTracingShaderGroupCreateInfoNV( *reinterpret_cast<RayTracingShaderGroupCreateInfoNV const *>( &rhs ) )
41102     {}
41103 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41104 
41105     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41106 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41107     RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
41108     {
41109       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const *>( &rhs );
41110       return *this;
41111     }
41112 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41113     RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41114     {
41115       pNext = pNext_;
41116       return *this;
41117     }
41118 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41119     RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
41120     {
41121       type = type_;
41122       return *this;
41123     }
41124 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41125     RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
41126     {
41127       generalShader = generalShader_;
41128       return *this;
41129     }
41130 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41131     RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
41132     {
41133       closestHitShader = closestHitShader_;
41134       return *this;
41135     }
41136 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41137     RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
41138     {
41139       anyHitShader = anyHitShader_;
41140       return *this;
41141     }
41142 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41143     RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
41144     {
41145       intersectionShader = intersectionShader_;
41146       return *this;
41147     }
41148 
41149 
operator VkRayTracingShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41150     operator VkRayTracingShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
41151     {
41152       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV*>( this );
41153     }
41154 
operator VkRayTracingShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41155     operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
41156     {
41157       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>( this );
41158     }
41159 
41160 
41161 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41162     auto operator<=>( RayTracingShaderGroupCreateInfoNV const& ) const = default;
41163 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41164     bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
41165     {
41166       return ( sType == rhs.sType )
41167           && ( pNext == rhs.pNext )
41168           && ( type == rhs.type )
41169           && ( generalShader == rhs.generalShader )
41170           && ( closestHitShader == rhs.closestHitShader )
41171           && ( anyHitShader == rhs.anyHitShader )
41172           && ( intersectionShader == rhs.intersectionShader );
41173     }
41174 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV41175     bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
41176     {
41177       return !operator==( rhs );
41178     }
41179 #endif
41180 
41181 
41182 
41183   public:
41184     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
41185     const void* pNext = {};
41186     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
41187     uint32_t generalShader = {};
41188     uint32_t closestHitShader = {};
41189     uint32_t anyHitShader = {};
41190     uint32_t intersectionShader = {};
41191 
41192   };
41193   static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
41194   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
41195 
41196   template <>
41197   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoNV>
41198   {
41199     using Type = RayTracingShaderGroupCreateInfoNV;
41200   };
41201 
41202   struct RayTracingPipelineCreateInfoNV
41203   {
41204     static const bool allowDuplicate = false;
41205     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV;
41206 
41207 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41208     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
41209     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
41210     {}
41211 
41212     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41213 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41214     RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
41215       : RayTracingPipelineCreateInfoNV( *reinterpret_cast<RayTracingPipelineCreateInfoNV const *>( &rhs ) )
41216     {}
41217 
41218 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41219     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_ = {} )
41220     : 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_ )
41221     {}
41222 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41223 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41224 
41225     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41226 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41227     RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
41228     {
41229       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const *>( &rhs );
41230       return *this;
41231     }
41232 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41233     RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41234     {
41235       pNext = pNext_;
41236       return *this;
41237     }
41238 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41239     RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41240     {
41241       flags = flags_;
41242       return *this;
41243     }
41244 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41245     RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
41246     {
41247       stageCount = stageCount_;
41248       return *this;
41249     }
41250 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41251     RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
41252     {
41253       pStages = pStages_;
41254       return *this;
41255     }
41256 
41257 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41258     RayTracingPipelineCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
41259     {
41260       stageCount = static_cast<uint32_t>( stages_.size() );
41261       pStages = stages_.data();
41262       return *this;
41263     }
41264 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41265 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41266     RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
41267     {
41268       groupCount = groupCount_;
41269       return *this;
41270     }
41271 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41272     RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
41273     {
41274       pGroups = pGroups_;
41275       return *this;
41276     }
41277 
41278 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41279     RayTracingPipelineCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
41280     {
41281       groupCount = static_cast<uint32_t>( groups_.size() );
41282       pGroups = groups_.data();
41283       return *this;
41284     }
41285 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41286 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41287     RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
41288     {
41289       maxRecursionDepth = maxRecursionDepth_;
41290       return *this;
41291     }
41292 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41293     RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
41294     {
41295       layout = layout_;
41296       return *this;
41297     }
41298 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41299     RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
41300     {
41301       basePipelineHandle = basePipelineHandle_;
41302       return *this;
41303     }
41304 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41305     RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
41306     {
41307       basePipelineIndex = basePipelineIndex_;
41308       return *this;
41309     }
41310 
41311 
operator VkRayTracingPipelineCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41312     operator VkRayTracingPipelineCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
41313     {
41314       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( this );
41315     }
41316 
operator VkRayTracingPipelineCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41317     operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
41318     {
41319       return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>( this );
41320     }
41321 
41322 
41323 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41324     auto operator<=>( RayTracingPipelineCreateInfoNV const& ) const = default;
41325 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41326     bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
41327     {
41328       return ( sType == rhs.sType )
41329           && ( pNext == rhs.pNext )
41330           && ( flags == rhs.flags )
41331           && ( stageCount == rhs.stageCount )
41332           && ( pStages == rhs.pStages )
41333           && ( groupCount == rhs.groupCount )
41334           && ( pGroups == rhs.pGroups )
41335           && ( maxRecursionDepth == rhs.maxRecursionDepth )
41336           && ( layout == rhs.layout )
41337           && ( basePipelineHandle == rhs.basePipelineHandle )
41338           && ( basePipelineIndex == rhs.basePipelineIndex );
41339     }
41340 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV41341     bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
41342     {
41343       return !operator==( rhs );
41344     }
41345 #endif
41346 
41347 
41348 
41349   public:
41350     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
41351     const void* pNext = {};
41352     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
41353     uint32_t stageCount = {};
41354     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
41355     uint32_t groupCount = {};
41356     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups = {};
41357     uint32_t maxRecursionDepth = {};
41358     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
41359     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
41360     int32_t basePipelineIndex = {};
41361 
41362   };
41363   static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" );
41364   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
41365 
41366   template <>
41367   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoNV>
41368   {
41369     using Type = RayTracingPipelineCreateInfoNV;
41370   };
41371 
41372   struct SubpassDescription
41373   {
41374 
41375 
41376 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription41377     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
41378     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
41379     {}
41380 
41381     VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41382 
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription41383     SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
41384       : SubpassDescription( *reinterpret_cast<SubpassDescription const *>( &rhs ) )
41385     {}
41386 
41387 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription41388     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_ = {} )
41389     : 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() )
41390     {
41391 #ifdef VULKAN_HPP_NO_EXCEPTIONS
41392       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
41393 #else
41394       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
41395       {
41396         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
41397       }
41398 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
41399     }
41400 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41401 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41402 
41403     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41404 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription41405     SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
41406     {
41407       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription const *>( &rhs );
41408       return *this;
41409     }
41410 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription41411     SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
41412     {
41413       flags = flags_;
41414       return *this;
41415     }
41416 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription41417     SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
41418     {
41419       pipelineBindPoint = pipelineBindPoint_;
41420       return *this;
41421     }
41422 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription41423     SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41424     {
41425       inputAttachmentCount = inputAttachmentCount_;
41426       return *this;
41427     }
41428 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription41429     SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
41430     {
41431       pInputAttachments = pInputAttachments_;
41432       return *this;
41433     }
41434 
41435 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription41436     SubpassDescription & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
41437     {
41438       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
41439       pInputAttachments = inputAttachments_.data();
41440       return *this;
41441     }
41442 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41443 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription41444     SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41445     {
41446       colorAttachmentCount = colorAttachmentCount_;
41447       return *this;
41448     }
41449 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription41450     SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
41451     {
41452       pColorAttachments = pColorAttachments_;
41453       return *this;
41454     }
41455 
41456 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription41457     SubpassDescription & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
41458     {
41459       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
41460       pColorAttachments = colorAttachments_.data();
41461       return *this;
41462     }
41463 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41464 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription41465     SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
41466     {
41467       pResolveAttachments = pResolveAttachments_;
41468       return *this;
41469     }
41470 
41471 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription41472     SubpassDescription & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
41473     {
41474       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
41475       pResolveAttachments = resolveAttachments_.data();
41476       return *this;
41477     }
41478 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41479 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription41480     SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
41481     {
41482       pDepthStencilAttachment = pDepthStencilAttachment_;
41483       return *this;
41484     }
41485 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription41486     SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41487     {
41488       preserveAttachmentCount = preserveAttachmentCount_;
41489       return *this;
41490     }
41491 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription41492     SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
41493     {
41494       pPreserveAttachments = pPreserveAttachments_;
41495       return *this;
41496     }
41497 
41498 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription41499     SubpassDescription & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
41500     {
41501       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
41502       pPreserveAttachments = preserveAttachments_.data();
41503       return *this;
41504     }
41505 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41506 
41507 
operator VkSubpassDescription const&VULKAN_HPP_NAMESPACE::SubpassDescription41508     operator VkSubpassDescription const&() const VULKAN_HPP_NOEXCEPT
41509     {
41510       return *reinterpret_cast<const VkSubpassDescription*>( this );
41511     }
41512 
operator VkSubpassDescription&VULKAN_HPP_NAMESPACE::SubpassDescription41513     operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
41514     {
41515       return *reinterpret_cast<VkSubpassDescription*>( this );
41516     }
41517 
41518 
41519 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41520     auto operator<=>( SubpassDescription const& ) const = default;
41521 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription41522     bool operator==( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
41523     {
41524       return ( flags == rhs.flags )
41525           && ( pipelineBindPoint == rhs.pipelineBindPoint )
41526           && ( inputAttachmentCount == rhs.inputAttachmentCount )
41527           && ( pInputAttachments == rhs.pInputAttachments )
41528           && ( colorAttachmentCount == rhs.colorAttachmentCount )
41529           && ( pColorAttachments == rhs.pColorAttachments )
41530           && ( pResolveAttachments == rhs.pResolveAttachments )
41531           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
41532           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
41533           && ( pPreserveAttachments == rhs.pPreserveAttachments );
41534     }
41535 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription41536     bool operator!=( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
41537     {
41538       return !operator==( rhs );
41539     }
41540 #endif
41541 
41542 
41543 
41544   public:
41545     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
41546     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
41547     uint32_t inputAttachmentCount = {};
41548     const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments = {};
41549     uint32_t colorAttachmentCount = {};
41550     const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments = {};
41551     const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments = {};
41552     const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment = {};
41553     uint32_t preserveAttachmentCount = {};
41554     const uint32_t* pPreserveAttachments = {};
41555 
41556   };
41557   static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" );
41558   static_assert( std::is_standard_layout<SubpassDescription>::value, "struct wrapper is not a standard layout!" );
41559 
41560   struct SubpassDependency
41561   {
41562 
41563 
41564 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency41565     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
41566     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ )
41567     {}
41568 
41569     VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41570 
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency41571     SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
41572       : SubpassDependency( *reinterpret_cast<SubpassDependency const *>( &rhs ) )
41573     {}
41574 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41575 
41576     VULKAN_HPP_CONSTEXPR_14 SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41577 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency41578     SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
41579     {
41580       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency const *>( &rhs );
41581       return *this;
41582     }
41583 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency41584     SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
41585     {
41586       srcSubpass = srcSubpass_;
41587       return *this;
41588     }
41589 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency41590     SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
41591     {
41592       dstSubpass = dstSubpass_;
41593       return *this;
41594     }
41595 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency41596     SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
41597     {
41598       srcStageMask = srcStageMask_;
41599       return *this;
41600     }
41601 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency41602     SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
41603     {
41604       dstStageMask = dstStageMask_;
41605       return *this;
41606     }
41607 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency41608     SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
41609     {
41610       srcAccessMask = srcAccessMask_;
41611       return *this;
41612     }
41613 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency41614     SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
41615     {
41616       dstAccessMask = dstAccessMask_;
41617       return *this;
41618     }
41619 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency41620     SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
41621     {
41622       dependencyFlags = dependencyFlags_;
41623       return *this;
41624     }
41625 
41626 
operator VkSubpassDependency const&VULKAN_HPP_NAMESPACE::SubpassDependency41627     operator VkSubpassDependency const&() const VULKAN_HPP_NOEXCEPT
41628     {
41629       return *reinterpret_cast<const VkSubpassDependency*>( this );
41630     }
41631 
operator VkSubpassDependency&VULKAN_HPP_NAMESPACE::SubpassDependency41632     operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
41633     {
41634       return *reinterpret_cast<VkSubpassDependency*>( this );
41635     }
41636 
41637 
41638 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41639     auto operator<=>( SubpassDependency const& ) const = default;
41640 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency41641     bool operator==( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
41642     {
41643       return ( srcSubpass == rhs.srcSubpass )
41644           && ( dstSubpass == rhs.dstSubpass )
41645           && ( srcStageMask == rhs.srcStageMask )
41646           && ( dstStageMask == rhs.dstStageMask )
41647           && ( srcAccessMask == rhs.srcAccessMask )
41648           && ( dstAccessMask == rhs.dstAccessMask )
41649           && ( dependencyFlags == rhs.dependencyFlags );
41650     }
41651 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency41652     bool operator!=( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
41653     {
41654       return !operator==( rhs );
41655     }
41656 #endif
41657 
41658 
41659 
41660   public:
41661     uint32_t srcSubpass = {};
41662     uint32_t dstSubpass = {};
41663     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
41664     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
41665     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
41666     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
41667     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
41668 
41669   };
41670   static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" );
41671   static_assert( std::is_standard_layout<SubpassDependency>::value, "struct wrapper is not a standard layout!" );
41672 
41673   struct RenderPassCreateInfo
41674   {
41675     static const bool allowDuplicate = false;
41676     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo;
41677 
41678 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41679     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
41680     : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ )
41681     {}
41682 
41683     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41684 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41685     RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41686       : RenderPassCreateInfo( *reinterpret_cast<RenderPassCreateInfo const *>( &rhs ) )
41687     {}
41688 
41689 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41690     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_ = {} )
41691     : 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() )
41692     {}
41693 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41694 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41695 
41696     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41697 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo41698     RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41699     {
41700       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const *>( &rhs );
41701       return *this;
41702     }
41703 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41704     RenderPassCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41705     {
41706       pNext = pNext_;
41707       return *this;
41708     }
41709 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41710     RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41711     {
41712       flags = flags_;
41713       return *this;
41714     }
41715 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41716     RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
41717     {
41718       attachmentCount = attachmentCount_;
41719       return *this;
41720     }
41721 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41722     RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ ) VULKAN_HPP_NOEXCEPT
41723     {
41724       pAttachments = pAttachments_;
41725       return *this;
41726     }
41727 
41728 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41729     RenderPassCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_ ) VULKAN_HPP_NOEXCEPT
41730     {
41731       attachmentCount = static_cast<uint32_t>( attachments_.size() );
41732       pAttachments = attachments_.data();
41733       return *this;
41734     }
41735 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41736 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41737     RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
41738     {
41739       subpassCount = subpassCount_;
41740       return *this;
41741     }
41742 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41743     RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
41744     {
41745       pSubpasses = pSubpasses_;
41746       return *this;
41747     }
41748 
41749 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41750     RenderPassCreateInfo & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
41751     {
41752       subpassCount = static_cast<uint32_t>( subpasses_.size() );
41753       pSubpasses = subpasses_.data();
41754       return *this;
41755     }
41756 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41757 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41758     RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
41759     {
41760       dependencyCount = dependencyCount_;
41761       return *this;
41762     }
41763 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41764     RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ ) VULKAN_HPP_NOEXCEPT
41765     {
41766       pDependencies = pDependencies_;
41767       return *this;
41768     }
41769 
41770 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo41771     RenderPassCreateInfo & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
41772     {
41773       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
41774       pDependencies = dependencies_.data();
41775       return *this;
41776     }
41777 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41778 
41779 
operator VkRenderPassCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo41780     operator VkRenderPassCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41781     {
41782       return *reinterpret_cast<const VkRenderPassCreateInfo*>( this );
41783     }
41784 
operator VkRenderPassCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo41785     operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
41786     {
41787       return *reinterpret_cast<VkRenderPassCreateInfo*>( this );
41788     }
41789 
41790 
41791 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41792     auto operator<=>( RenderPassCreateInfo const& ) const = default;
41793 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo41794     bool operator==( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41795     {
41796       return ( sType == rhs.sType )
41797           && ( pNext == rhs.pNext )
41798           && ( flags == rhs.flags )
41799           && ( attachmentCount == rhs.attachmentCount )
41800           && ( pAttachments == rhs.pAttachments )
41801           && ( subpassCount == rhs.subpassCount )
41802           && ( pSubpasses == rhs.pSubpasses )
41803           && ( dependencyCount == rhs.dependencyCount )
41804           && ( pDependencies == rhs.pDependencies );
41805     }
41806 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo41807     bool operator!=( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41808     {
41809       return !operator==( rhs );
41810     }
41811 #endif
41812 
41813 
41814 
41815   public:
41816     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo;
41817     const void* pNext = {};
41818     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
41819     uint32_t attachmentCount = {};
41820     const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments = {};
41821     uint32_t subpassCount = {};
41822     const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses = {};
41823     uint32_t dependencyCount = {};
41824     const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies = {};
41825 
41826   };
41827   static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" );
41828   static_assert( std::is_standard_layout<RenderPassCreateInfo>::value, "struct wrapper is not a standard layout!" );
41829 
41830   template <>
41831   struct CppType<StructureType, StructureType::eRenderPassCreateInfo>
41832   {
41833     using Type = RenderPassCreateInfo;
41834   };
41835 
41836   struct SubpassDescription2
41837   {
41838     static const bool allowDuplicate = false;
41839     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2;
41840 
41841 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription241842     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
41843     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
41844     {}
41845 
41846     VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41847 
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription241848     SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
41849       : SubpassDescription2( *reinterpret_cast<SubpassDescription2 const *>( &rhs ) )
41850     {}
41851 
41852 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription241853     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_ = {} )
41854     : 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() )
41855     {
41856 #ifdef VULKAN_HPP_NO_EXCEPTIONS
41857       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
41858 #else
41859       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
41860       {
41861         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
41862       }
41863 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
41864     }
41865 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41866 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41867 
41868     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41869 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription241870     SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
41871     {
41872       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription2 const *>( &rhs );
41873       return *this;
41874     }
41875 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescription241876     SubpassDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41877     {
41878       pNext = pNext_;
41879       return *this;
41880     }
41881 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription241882     SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
41883     {
41884       flags = flags_;
41885       return *this;
41886     }
41887 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription241888     SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
41889     {
41890       pipelineBindPoint = pipelineBindPoint_;
41891       return *this;
41892     }
41893 
setViewMaskVULKAN_HPP_NAMESPACE::SubpassDescription241894     SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
41895     {
41896       viewMask = viewMask_;
41897       return *this;
41898     }
41899 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription241900     SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41901     {
41902       inputAttachmentCount = inputAttachmentCount_;
41903       return *this;
41904     }
41905 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241906     SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
41907     {
41908       pInputAttachments = pInputAttachments_;
41909       return *this;
41910     }
41911 
41912 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241913     SubpassDescription2 & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
41914     {
41915       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
41916       pInputAttachments = inputAttachments_.data();
41917       return *this;
41918     }
41919 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41920 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription241921     SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41922     {
41923       colorAttachmentCount = colorAttachmentCount_;
41924       return *this;
41925     }
41926 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241927     SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
41928     {
41929       pColorAttachments = pColorAttachments_;
41930       return *this;
41931     }
41932 
41933 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241934     SubpassDescription2 & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
41935     {
41936       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
41937       pColorAttachments = colorAttachments_.data();
41938       return *this;
41939     }
41940 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41941 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241942     SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
41943     {
41944       pResolveAttachments = pResolveAttachments_;
41945       return *this;
41946     }
41947 
41948 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241949     SubpassDescription2 & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
41950     {
41951       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
41952       pResolveAttachments = resolveAttachments_.data();
41953       return *this;
41954     }
41955 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41956 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription241957     SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
41958     {
41959       pDepthStencilAttachment = pDepthStencilAttachment_;
41960       return *this;
41961     }
41962 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription241963     SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41964     {
41965       preserveAttachmentCount = preserveAttachmentCount_;
41966       return *this;
41967     }
41968 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241969     SubpassDescription2 & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
41970     {
41971       pPreserveAttachments = pPreserveAttachments_;
41972       return *this;
41973     }
41974 
41975 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241976     SubpassDescription2 & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
41977     {
41978       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
41979       pPreserveAttachments = preserveAttachments_.data();
41980       return *this;
41981     }
41982 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41983 
41984 
operator VkSubpassDescription2 const&VULKAN_HPP_NAMESPACE::SubpassDescription241985     operator VkSubpassDescription2 const&() const VULKAN_HPP_NOEXCEPT
41986     {
41987       return *reinterpret_cast<const VkSubpassDescription2*>( this );
41988     }
41989 
operator VkSubpassDescription2&VULKAN_HPP_NAMESPACE::SubpassDescription241990     operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
41991     {
41992       return *reinterpret_cast<VkSubpassDescription2*>( this );
41993     }
41994 
41995 
41996 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41997     auto operator<=>( SubpassDescription2 const& ) const = default;
41998 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription241999     bool operator==( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42000     {
42001       return ( sType == rhs.sType )
42002           && ( pNext == rhs.pNext )
42003           && ( flags == rhs.flags )
42004           && ( pipelineBindPoint == rhs.pipelineBindPoint )
42005           && ( viewMask == rhs.viewMask )
42006           && ( inputAttachmentCount == rhs.inputAttachmentCount )
42007           && ( pInputAttachments == rhs.pInputAttachments )
42008           && ( colorAttachmentCount == rhs.colorAttachmentCount )
42009           && ( pColorAttachments == rhs.pColorAttachments )
42010           && ( pResolveAttachments == rhs.pResolveAttachments )
42011           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
42012           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
42013           && ( pPreserveAttachments == rhs.pPreserveAttachments );
42014     }
42015 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription242016     bool operator!=( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42017     {
42018       return !operator==( rhs );
42019     }
42020 #endif
42021 
42022 
42023 
42024   public:
42025     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2;
42026     const void* pNext = {};
42027     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
42028     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
42029     uint32_t viewMask = {};
42030     uint32_t inputAttachmentCount = {};
42031     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments = {};
42032     uint32_t colorAttachmentCount = {};
42033     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments = {};
42034     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments = {};
42035     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment = {};
42036     uint32_t preserveAttachmentCount = {};
42037     const uint32_t* pPreserveAttachments = {};
42038 
42039   };
42040   static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), "struct and wrapper have different size!" );
42041   static_assert( std::is_standard_layout<SubpassDescription2>::value, "struct wrapper is not a standard layout!" );
42042 
42043   template <>
42044   struct CppType<StructureType, StructureType::eSubpassDescription2>
42045   {
42046     using Type = SubpassDescription2;
42047   };
42048   using SubpassDescription2KHR = SubpassDescription2;
42049 
42050   struct SubpassDependency2
42051   {
42052     static const bool allowDuplicate = false;
42053     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2;
42054 
42055 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency242056     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
42057     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ), viewOffset( viewOffset_ )
42058     {}
42059 
42060     VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42061 
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency242062     SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
42063       : SubpassDependency2( *reinterpret_cast<SubpassDependency2 const *>( &rhs ) )
42064     {}
42065 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42066 
42067     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42068 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency242069     SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
42070     {
42071       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency2 const *>( &rhs );
42072       return *this;
42073     }
42074 
setPNextVULKAN_HPP_NAMESPACE::SubpassDependency242075     SubpassDependency2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42076     {
42077       pNext = pNext_;
42078       return *this;
42079     }
42080 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency242081     SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
42082     {
42083       srcSubpass = srcSubpass_;
42084       return *this;
42085     }
42086 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency242087     SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
42088     {
42089       dstSubpass = dstSubpass_;
42090       return *this;
42091     }
42092 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency242093     SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
42094     {
42095       srcStageMask = srcStageMask_;
42096       return *this;
42097     }
42098 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency242099     SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
42100     {
42101       dstStageMask = dstStageMask_;
42102       return *this;
42103     }
42104 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency242105     SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
42106     {
42107       srcAccessMask = srcAccessMask_;
42108       return *this;
42109     }
42110 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency242111     SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
42112     {
42113       dstAccessMask = dstAccessMask_;
42114       return *this;
42115     }
42116 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency242117     SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
42118     {
42119       dependencyFlags = dependencyFlags_;
42120       return *this;
42121     }
42122 
setViewOffsetVULKAN_HPP_NAMESPACE::SubpassDependency242123     SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT
42124     {
42125       viewOffset = viewOffset_;
42126       return *this;
42127     }
42128 
42129 
operator VkSubpassDependency2 const&VULKAN_HPP_NAMESPACE::SubpassDependency242130     operator VkSubpassDependency2 const&() const VULKAN_HPP_NOEXCEPT
42131     {
42132       return *reinterpret_cast<const VkSubpassDependency2*>( this );
42133     }
42134 
operator VkSubpassDependency2&VULKAN_HPP_NAMESPACE::SubpassDependency242135     operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
42136     {
42137       return *reinterpret_cast<VkSubpassDependency2*>( this );
42138     }
42139 
42140 
42141 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42142     auto operator<=>( SubpassDependency2 const& ) const = default;
42143 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency242144     bool operator==( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42145     {
42146       return ( sType == rhs.sType )
42147           && ( pNext == rhs.pNext )
42148           && ( srcSubpass == rhs.srcSubpass )
42149           && ( dstSubpass == rhs.dstSubpass )
42150           && ( srcStageMask == rhs.srcStageMask )
42151           && ( dstStageMask == rhs.dstStageMask )
42152           && ( srcAccessMask == rhs.srcAccessMask )
42153           && ( dstAccessMask == rhs.dstAccessMask )
42154           && ( dependencyFlags == rhs.dependencyFlags )
42155           && ( viewOffset == rhs.viewOffset );
42156     }
42157 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency242158     bool operator!=( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42159     {
42160       return !operator==( rhs );
42161     }
42162 #endif
42163 
42164 
42165 
42166   public:
42167     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2;
42168     const void* pNext = {};
42169     uint32_t srcSubpass = {};
42170     uint32_t dstSubpass = {};
42171     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
42172     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
42173     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
42174     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
42175     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
42176     int32_t viewOffset = {};
42177 
42178   };
42179   static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), "struct and wrapper have different size!" );
42180   static_assert( std::is_standard_layout<SubpassDependency2>::value, "struct wrapper is not a standard layout!" );
42181 
42182   template <>
42183   struct CppType<StructureType, StructureType::eSubpassDependency2>
42184   {
42185     using Type = SubpassDependency2;
42186   };
42187   using SubpassDependency2KHR = SubpassDependency2;
42188 
42189   struct RenderPassCreateInfo2
42190   {
42191     static const bool allowDuplicate = false;
42192     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2;
42193 
42194 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo242195     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
42196     : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ), correlatedViewMaskCount( correlatedViewMaskCount_ ), pCorrelatedViewMasks( pCorrelatedViewMasks_ )
42197     {}
42198 
42199     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42200 
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo242201     RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
42202       : RenderPassCreateInfo2( *reinterpret_cast<RenderPassCreateInfo2 const *>( &rhs ) )
42203     {}
42204 
42205 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo242206     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_ = {} )
42207     : 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() )
42208     {}
42209 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42210 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42211 
42212     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42213 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo242214     RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
42215     {
42216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const *>( &rhs );
42217       return *this;
42218     }
42219 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242220     RenderPassCreateInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42221     {
42222       pNext = pNext_;
42223       return *this;
42224     }
42225 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242226     RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42227     {
42228       flags = flags_;
42229       return *this;
42230     }
42231 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242232     RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
42233     {
42234       attachmentCount = attachmentCount_;
42235       return *this;
42236     }
42237 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242238     RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ ) VULKAN_HPP_NOEXCEPT
42239     {
42240       pAttachments = pAttachments_;
42241       return *this;
42242     }
42243 
42244 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242245     RenderPassCreateInfo2 & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_ ) VULKAN_HPP_NOEXCEPT
42246     {
42247       attachmentCount = static_cast<uint32_t>( attachments_.size() );
42248       pAttachments = attachments_.data();
42249       return *this;
42250     }
42251 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42252 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242253     RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
42254     {
42255       subpassCount = subpassCount_;
42256       return *this;
42257     }
42258 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242259     RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
42260     {
42261       pSubpasses = pSubpasses_;
42262       return *this;
42263     }
42264 
42265 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242266     RenderPassCreateInfo2 & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
42267     {
42268       subpassCount = static_cast<uint32_t>( subpasses_.size() );
42269       pSubpasses = subpasses_.data();
42270       return *this;
42271     }
42272 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42273 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242274     RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
42275     {
42276       dependencyCount = dependencyCount_;
42277       return *this;
42278     }
42279 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242280     RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ ) VULKAN_HPP_NOEXCEPT
42281     {
42282       pDependencies = pDependencies_;
42283       return *this;
42284     }
42285 
42286 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242287     RenderPassCreateInfo2 & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
42288     {
42289       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
42290       pDependencies = dependencies_.data();
42291       return *this;
42292     }
42293 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42294 
setCorrelatedViewMaskCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242295     RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
42296     {
42297       correlatedViewMaskCount = correlatedViewMaskCount_;
42298       return *this;
42299     }
42300 
setPCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242301     RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
42302     {
42303       pCorrelatedViewMasks = pCorrelatedViewMasks_;
42304       return *this;
42305     }
42306 
42307 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo242308     RenderPassCreateInfo2 & setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
42309     {
42310       correlatedViewMaskCount = static_cast<uint32_t>( correlatedViewMasks_.size() );
42311       pCorrelatedViewMasks = correlatedViewMasks_.data();
42312       return *this;
42313     }
42314 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42315 
42316 
operator VkRenderPassCreateInfo2 const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo242317     operator VkRenderPassCreateInfo2 const&() const VULKAN_HPP_NOEXCEPT
42318     {
42319       return *reinterpret_cast<const VkRenderPassCreateInfo2*>( this );
42320     }
42321 
operator VkRenderPassCreateInfo2&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo242322     operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
42323     {
42324       return *reinterpret_cast<VkRenderPassCreateInfo2*>( this );
42325     }
42326 
42327 
42328 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42329     auto operator<=>( RenderPassCreateInfo2 const& ) const = default;
42330 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo242331     bool operator==( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42332     {
42333       return ( sType == rhs.sType )
42334           && ( pNext == rhs.pNext )
42335           && ( flags == rhs.flags )
42336           && ( attachmentCount == rhs.attachmentCount )
42337           && ( pAttachments == rhs.pAttachments )
42338           && ( subpassCount == rhs.subpassCount )
42339           && ( pSubpasses == rhs.pSubpasses )
42340           && ( dependencyCount == rhs.dependencyCount )
42341           && ( pDependencies == rhs.pDependencies )
42342           && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount )
42343           && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
42344     }
42345 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo242346     bool operator!=( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42347     {
42348       return !operator==( rhs );
42349     }
42350 #endif
42351 
42352 
42353 
42354   public:
42355     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2;
42356     const void* pNext = {};
42357     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
42358     uint32_t attachmentCount = {};
42359     const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments = {};
42360     uint32_t subpassCount = {};
42361     const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses = {};
42362     uint32_t dependencyCount = {};
42363     const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies = {};
42364     uint32_t correlatedViewMaskCount = {};
42365     const uint32_t* pCorrelatedViewMasks = {};
42366 
42367   };
42368   static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), "struct and wrapper have different size!" );
42369   static_assert( std::is_standard_layout<RenderPassCreateInfo2>::value, "struct wrapper is not a standard layout!" );
42370 
42371   template <>
42372   struct CppType<StructureType, StructureType::eRenderPassCreateInfo2>
42373   {
42374     using Type = RenderPassCreateInfo2;
42375   };
42376   using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
42377 
42378   struct SamplerCreateInfo
42379   {
42380     static const bool allowDuplicate = false;
42381     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo;
42382 
42383 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo42384     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
42385     : 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_ )
42386     {}
42387 
42388     VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42389 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo42390     SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42391       : SamplerCreateInfo( *reinterpret_cast<SamplerCreateInfo const *>( &rhs ) )
42392     {}
42393 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42394 
42395     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42396 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo42397     SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42398     {
42399       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCreateInfo const *>( &rhs );
42400       return *this;
42401     }
42402 
setPNextVULKAN_HPP_NAMESPACE::SamplerCreateInfo42403     SamplerCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42404     {
42405       pNext = pNext_;
42406       return *this;
42407     }
42408 
setFlagsVULKAN_HPP_NAMESPACE::SamplerCreateInfo42409     SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42410     {
42411       flags = flags_;
42412       return *this;
42413     }
42414 
setMagFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo42415     SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT
42416     {
42417       magFilter = magFilter_;
42418       return *this;
42419     }
42420 
setMinFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo42421     SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT
42422     {
42423       minFilter = minFilter_;
42424       return *this;
42425     }
42426 
setMipmapModeVULKAN_HPP_NAMESPACE::SamplerCreateInfo42427     SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT
42428     {
42429       mipmapMode = mipmapMode_;
42430       return *this;
42431     }
42432 
setAddressModeUVULKAN_HPP_NAMESPACE::SamplerCreateInfo42433     SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT
42434     {
42435       addressModeU = addressModeU_;
42436       return *this;
42437     }
42438 
setAddressModeVVULKAN_HPP_NAMESPACE::SamplerCreateInfo42439     SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT
42440     {
42441       addressModeV = addressModeV_;
42442       return *this;
42443     }
42444 
setAddressModeWVULKAN_HPP_NAMESPACE::SamplerCreateInfo42445     SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT
42446     {
42447       addressModeW = addressModeW_;
42448       return *this;
42449     }
42450 
setMipLodBiasVULKAN_HPP_NAMESPACE::SamplerCreateInfo42451     SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT
42452     {
42453       mipLodBias = mipLodBias_;
42454       return *this;
42455     }
42456 
setAnisotropyEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo42457     SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT
42458     {
42459       anisotropyEnable = anisotropyEnable_;
42460       return *this;
42461     }
42462 
setMaxAnisotropyVULKAN_HPP_NAMESPACE::SamplerCreateInfo42463     SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT
42464     {
42465       maxAnisotropy = maxAnisotropy_;
42466       return *this;
42467     }
42468 
setCompareEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo42469     SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT
42470     {
42471       compareEnable = compareEnable_;
42472       return *this;
42473     }
42474 
setCompareOpVULKAN_HPP_NAMESPACE::SamplerCreateInfo42475     SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
42476     {
42477       compareOp = compareOp_;
42478       return *this;
42479     }
42480 
setMinLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo42481     SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
42482     {
42483       minLod = minLod_;
42484       return *this;
42485     }
42486 
setMaxLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo42487     SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT
42488     {
42489       maxLod = maxLod_;
42490       return *this;
42491     }
42492 
setBorderColorVULKAN_HPP_NAMESPACE::SamplerCreateInfo42493     SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT
42494     {
42495       borderColor = borderColor_;
42496       return *this;
42497     }
42498 
setUnnormalizedCoordinatesVULKAN_HPP_NAMESPACE::SamplerCreateInfo42499     SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT
42500     {
42501       unnormalizedCoordinates = unnormalizedCoordinates_;
42502       return *this;
42503     }
42504 
42505 
operator VkSamplerCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerCreateInfo42506     operator VkSamplerCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42507     {
42508       return *reinterpret_cast<const VkSamplerCreateInfo*>( this );
42509     }
42510 
operator VkSamplerCreateInfo&VULKAN_HPP_NAMESPACE::SamplerCreateInfo42511     operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
42512     {
42513       return *reinterpret_cast<VkSamplerCreateInfo*>( this );
42514     }
42515 
42516 
42517 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42518     auto operator<=>( SamplerCreateInfo const& ) const = default;
42519 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerCreateInfo42520     bool operator==( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42521     {
42522       return ( sType == rhs.sType )
42523           && ( pNext == rhs.pNext )
42524           && ( flags == rhs.flags )
42525           && ( magFilter == rhs.magFilter )
42526           && ( minFilter == rhs.minFilter )
42527           && ( mipmapMode == rhs.mipmapMode )
42528           && ( addressModeU == rhs.addressModeU )
42529           && ( addressModeV == rhs.addressModeV )
42530           && ( addressModeW == rhs.addressModeW )
42531           && ( mipLodBias == rhs.mipLodBias )
42532           && ( anisotropyEnable == rhs.anisotropyEnable )
42533           && ( maxAnisotropy == rhs.maxAnisotropy )
42534           && ( compareEnable == rhs.compareEnable )
42535           && ( compareOp == rhs.compareOp )
42536           && ( minLod == rhs.minLod )
42537           && ( maxLod == rhs.maxLod )
42538           && ( borderColor == rhs.borderColor )
42539           && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
42540     }
42541 
operator !=VULKAN_HPP_NAMESPACE::SamplerCreateInfo42542     bool operator!=( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42543     {
42544       return !operator==( rhs );
42545     }
42546 #endif
42547 
42548 
42549 
42550   public:
42551     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo;
42552     const void* pNext = {};
42553     VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {};
42554     VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
42555     VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
42556     VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest;
42557     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
42558     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
42559     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
42560     float mipLodBias = {};
42561     VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {};
42562     float maxAnisotropy = {};
42563     VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {};
42564     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
42565     float minLod = {};
42566     float maxLod = {};
42567     VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack;
42568     VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {};
42569 
42570   };
42571   static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" );
42572   static_assert( std::is_standard_layout<SamplerCreateInfo>::value, "struct wrapper is not a standard layout!" );
42573 
42574   template <>
42575   struct CppType<StructureType, StructureType::eSamplerCreateInfo>
42576   {
42577     using Type = SamplerCreateInfo;
42578   };
42579 
42580   struct SamplerYcbcrConversionCreateInfo
42581   {
42582     static const bool allowDuplicate = false;
42583     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo;
42584 
42585 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42586     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
42587     : format( format_ ), ycbcrModel( ycbcrModel_ ), ycbcrRange( ycbcrRange_ ), components( components_ ), xChromaOffset( xChromaOffset_ ), yChromaOffset( yChromaOffset_ ), chromaFilter( chromaFilter_ ), forceExplicitReconstruction( forceExplicitReconstruction_ )
42588     {}
42589 
42590     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42591 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42592     SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42593       : SamplerYcbcrConversionCreateInfo( *reinterpret_cast<SamplerYcbcrConversionCreateInfo const *>( &rhs ) )
42594     {}
42595 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42596 
42597     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42598 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42599     SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42600     {
42601       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const *>( &rhs );
42602       return *this;
42603     }
42604 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42605     SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42606     {
42607       pNext = pNext_;
42608       return *this;
42609     }
42610 
setFormatVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42611     SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
42612     {
42613       format = format_;
42614       return *this;
42615     }
42616 
setYcbcrModelVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42617     SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
42618     {
42619       ycbcrModel = ycbcrModel_;
42620       return *this;
42621     }
42622 
setYcbcrRangeVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42623     SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT
42624     {
42625       ycbcrRange = ycbcrRange_;
42626       return *this;
42627     }
42628 
setComponentsVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42629     SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
42630     {
42631       components = components_;
42632       return *this;
42633     }
42634 
setXChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42635     SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT
42636     {
42637       xChromaOffset = xChromaOffset_;
42638       return *this;
42639     }
42640 
setYChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42641     SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT
42642     {
42643       yChromaOffset = yChromaOffset_;
42644       return *this;
42645     }
42646 
setChromaFilterVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42647     SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT
42648     {
42649       chromaFilter = chromaFilter_;
42650       return *this;
42651     }
42652 
setForceExplicitReconstructionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42653     SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
42654     {
42655       forceExplicitReconstruction = forceExplicitReconstruction_;
42656       return *this;
42657     }
42658 
42659 
operator VkSamplerYcbcrConversionCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42660     operator VkSamplerYcbcrConversionCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42661     {
42662       return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( this );
42663     }
42664 
operator VkSamplerYcbcrConversionCreateInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42665     operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
42666     {
42667       return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>( this );
42668     }
42669 
42670 
42671 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42672     auto operator<=>( SamplerYcbcrConversionCreateInfo const& ) const = default;
42673 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42674     bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42675     {
42676       return ( sType == rhs.sType )
42677           && ( pNext == rhs.pNext )
42678           && ( format == rhs.format )
42679           && ( ycbcrModel == rhs.ycbcrModel )
42680           && ( ycbcrRange == rhs.ycbcrRange )
42681           && ( components == rhs.components )
42682           && ( xChromaOffset == rhs.xChromaOffset )
42683           && ( yChromaOffset == rhs.yChromaOffset )
42684           && ( chromaFilter == rhs.chromaFilter )
42685           && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
42686     }
42687 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo42688     bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42689     {
42690       return !operator==( rhs );
42691     }
42692 #endif
42693 
42694 
42695 
42696   public:
42697     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
42698     const void* pNext = {};
42699     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
42700     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
42701     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
42702     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
42703     VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
42704     VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
42705     VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
42706     VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {};
42707 
42708   };
42709   static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" );
42710   static_assert( std::is_standard_layout<SamplerYcbcrConversionCreateInfo>::value, "struct wrapper is not a standard layout!" );
42711 
42712   template <>
42713   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionCreateInfo>
42714   {
42715     using Type = SamplerYcbcrConversionCreateInfo;
42716   };
42717   using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
42718 
42719   class SamplerYcbcrConversion
42720   {
42721   public:
42722     using CType = VkSamplerYcbcrConversion;
42723 
42724     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion;
42725     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
42726 
42727   public:
SamplerYcbcrConversion()42728     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() VULKAN_HPP_NOEXCEPT
42729       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
42730     {}
42731 
SamplerYcbcrConversion(std::nullptr_t)42732     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42733       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
42734     {}
42735 
SamplerYcbcrConversion(VkSamplerYcbcrConversion samplerYcbcrConversion)42736     VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT
42737       : m_samplerYcbcrConversion( samplerYcbcrConversion )
42738     {}
42739 
42740 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSamplerYcbcrConversion samplerYcbcrConversion)42741     SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion) VULKAN_HPP_NOEXCEPT
42742     {
42743       m_samplerYcbcrConversion = samplerYcbcrConversion;
42744       return *this;
42745     }
42746 #endif
42747 
operator =(std::nullptr_t)42748     SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42749     {
42750       m_samplerYcbcrConversion = VK_NULL_HANDLE;
42751       return *this;
42752     }
42753 
42754 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42755     auto operator<=>( SamplerYcbcrConversion const& ) const = default;
42756 #else
operator ==(SamplerYcbcrConversion const & rhs) const42757     bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
42758     {
42759       return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion;
42760     }
42761 
operator !=(SamplerYcbcrConversion const & rhs) const42762     bool operator!=(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
42763     {
42764       return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion;
42765     }
42766 
operator <(SamplerYcbcrConversion const & rhs) const42767     bool operator<(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
42768     {
42769       return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion;
42770     }
42771 #endif
42772 
operator VkSamplerYcbcrConversion() const42773     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT
42774     {
42775       return m_samplerYcbcrConversion;
42776     }
42777 
operator bool() const42778     explicit operator bool() const VULKAN_HPP_NOEXCEPT
42779     {
42780       return m_samplerYcbcrConversion != VK_NULL_HANDLE;
42781     }
42782 
operator !() const42783     bool operator!() const VULKAN_HPP_NOEXCEPT
42784     {
42785       return m_samplerYcbcrConversion == VK_NULL_HANDLE;
42786     }
42787 
42788   private:
42789     VkSamplerYcbcrConversion m_samplerYcbcrConversion;
42790   };
42791   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" );
42792 
42793   template <>
42794   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSamplerYcbcrConversion>
42795   {
42796     using type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
42797   };
42798 
42799   template <>
42800   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion>
42801   {
42802     using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
42803   };
42804 
42805 
42806   template <>
42807   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion>
42808   {
42809     using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
42810   };
42811 
42812 
42813   template <>
42814   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
42815   {
42816     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
42817   };
42818   using SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
42819 
42820   struct SemaphoreCreateInfo
42821   {
42822     static const bool allowDuplicate = false;
42823     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo;
42824 
42825 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42826     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
42827     : flags( flags_ )
42828     {}
42829 
42830     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42831 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42832     SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42833       : SemaphoreCreateInfo( *reinterpret_cast<SemaphoreCreateInfo const *>( &rhs ) )
42834     {}
42835 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42836 
42837     VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42838 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42839     SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42840     {
42841       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const *>( &rhs );
42842       return *this;
42843     }
42844 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42845     SemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42846     {
42847       pNext = pNext_;
42848       return *this;
42849     }
42850 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42851     SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42852     {
42853       flags = flags_;
42854       return *this;
42855     }
42856 
42857 
operator VkSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42858     operator VkSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42859     {
42860       return *reinterpret_cast<const VkSemaphoreCreateInfo*>( this );
42861     }
42862 
operator VkSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42863     operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
42864     {
42865       return *reinterpret_cast<VkSemaphoreCreateInfo*>( this );
42866     }
42867 
42868 
42869 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42870     auto operator<=>( SemaphoreCreateInfo const& ) const = default;
42871 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42872     bool operator==( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42873     {
42874       return ( sType == rhs.sType )
42875           && ( pNext == rhs.pNext )
42876           && ( flags == rhs.flags );
42877     }
42878 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42879     bool operator!=( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42880     {
42881       return !operator==( rhs );
42882     }
42883 #endif
42884 
42885 
42886 
42887   public:
42888     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo;
42889     const void* pNext = {};
42890     VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {};
42891 
42892   };
42893   static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" );
42894   static_assert( std::is_standard_layout<SemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
42895 
42896   template <>
42897   struct CppType<StructureType, StructureType::eSemaphoreCreateInfo>
42898   {
42899     using Type = SemaphoreCreateInfo;
42900   };
42901 
42902   struct ShaderModuleCreateInfo
42903   {
42904     static const bool allowDuplicate = false;
42905     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo;
42906 
42907 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42908     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo(VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, size_t codeSize_ = {}, const uint32_t* pCode_ = {}) VULKAN_HPP_NOEXCEPT
42909     : flags( flags_ ), codeSize( codeSize_ ), pCode( pCode_ )
42910     {}
42911 
42912     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42913 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42914     ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42915       : ShaderModuleCreateInfo( *reinterpret_cast<ShaderModuleCreateInfo const *>( &rhs ) )
42916     {}
42917 
42918 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42919     ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ )
42920     : flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() )
42921     {}
42922 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42923 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42924 
42925     VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42926 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42927     ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42928     {
42929       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const *>( &rhs );
42930       return *this;
42931     }
42932 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42933     ShaderModuleCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42934     {
42935       pNext = pNext_;
42936       return *this;
42937     }
42938 
setFlagsVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42939     ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42940     {
42941       flags = flags_;
42942       return *this;
42943     }
42944 
setCodeSizeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42945     ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
42946     {
42947       codeSize = codeSize_;
42948       return *this;
42949     }
42950 
setPCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42951     ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ ) VULKAN_HPP_NOEXCEPT
42952     {
42953       pCode = pCode_;
42954       return *this;
42955     }
42956 
42957 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42958     ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ ) VULKAN_HPP_NOEXCEPT
42959     {
42960       codeSize = code_.size() * 4;
42961       pCode = code_.data();
42962       return *this;
42963     }
42964 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42965 
42966 
operator VkShaderModuleCreateInfo const&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42967     operator VkShaderModuleCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42968     {
42969       return *reinterpret_cast<const VkShaderModuleCreateInfo*>( this );
42970     }
42971 
operator VkShaderModuleCreateInfo&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42972     operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
42973     {
42974       return *reinterpret_cast<VkShaderModuleCreateInfo*>( this );
42975     }
42976 
42977 
42978 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42979     auto operator<=>( ShaderModuleCreateInfo const& ) const = default;
42980 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42981     bool operator==( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42982     {
42983       return ( sType == rhs.sType )
42984           && ( pNext == rhs.pNext )
42985           && ( flags == rhs.flags )
42986           && ( codeSize == rhs.codeSize )
42987           && ( pCode == rhs.pCode );
42988     }
42989 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42990     bool operator!=( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42991     {
42992       return !operator==( rhs );
42993     }
42994 #endif
42995 
42996 
42997 
42998   public:
42999     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo;
43000     const void* pNext = {};
43001     VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {};
43002     size_t codeSize = {};
43003     const uint32_t* pCode = {};
43004 
43005   };
43006   static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" );
43007   static_assert( std::is_standard_layout<ShaderModuleCreateInfo>::value, "struct wrapper is not a standard layout!" );
43008 
43009   template <>
43010   struct CppType<StructureType, StructureType::eShaderModuleCreateInfo>
43011   {
43012     using Type = ShaderModuleCreateInfo;
43013   };
43014 
43015   class SurfaceKHR
43016   {
43017   public:
43018     using CType = VkSurfaceKHR;
43019 
43020     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR;
43021     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
43022 
43023   public:
SurfaceKHR()43024     VULKAN_HPP_CONSTEXPR SurfaceKHR() VULKAN_HPP_NOEXCEPT
43025       : m_surfaceKHR(VK_NULL_HANDLE)
43026     {}
43027 
SurfaceKHR(std::nullptr_t)43028     VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43029       : m_surfaceKHR(VK_NULL_HANDLE)
43030     {}
43031 
SurfaceKHR(VkSurfaceKHR surfaceKHR)43032     VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT
43033       : m_surfaceKHR( surfaceKHR )
43034     {}
43035 
43036 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSurfaceKHR surfaceKHR)43037     SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR) VULKAN_HPP_NOEXCEPT
43038     {
43039       m_surfaceKHR = surfaceKHR;
43040       return *this;
43041     }
43042 #endif
43043 
operator =(std::nullptr_t)43044     SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43045     {
43046       m_surfaceKHR = VK_NULL_HANDLE;
43047       return *this;
43048     }
43049 
43050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43051     auto operator<=>( SurfaceKHR const& ) const = default;
43052 #else
operator ==(SurfaceKHR const & rhs) const43053     bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43054     {
43055       return m_surfaceKHR == rhs.m_surfaceKHR;
43056     }
43057 
operator !=(SurfaceKHR const & rhs) const43058     bool operator!=(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43059     {
43060       return m_surfaceKHR != rhs.m_surfaceKHR;
43061     }
43062 
operator <(SurfaceKHR const & rhs) const43063     bool operator<(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43064     {
43065       return m_surfaceKHR < rhs.m_surfaceKHR;
43066     }
43067 #endif
43068 
operator VkSurfaceKHR() const43069     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT
43070     {
43071       return m_surfaceKHR;
43072     }
43073 
operator bool() const43074     explicit operator bool() const VULKAN_HPP_NOEXCEPT
43075     {
43076       return m_surfaceKHR != VK_NULL_HANDLE;
43077     }
43078 
operator !() const43079     bool operator!() const VULKAN_HPP_NOEXCEPT
43080     {
43081       return m_surfaceKHR == VK_NULL_HANDLE;
43082     }
43083 
43084   private:
43085     VkSurfaceKHR m_surfaceKHR;
43086   };
43087   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" );
43088 
43089   template <>
43090   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSurfaceKHR>
43091   {
43092     using type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
43093   };
43094 
43095   template <>
43096   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR>
43097   {
43098     using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
43099   };
43100 
43101 
43102   template <>
43103   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR>
43104   {
43105     using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
43106   };
43107 
43108 
43109   template <>
43110   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SurfaceKHR>
43111   {
43112     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
43113   };
43114 
43115   struct SwapchainCreateInfoKHR
43116   {
43117     static const bool allowDuplicate = false;
43118     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR;
43119 
43120 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43121     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
43122     : 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_ )
43123     {}
43124 
43125     VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43126 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43127     SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43128       : SwapchainCreateInfoKHR( *reinterpret_cast<SwapchainCreateInfoKHR const *>( &rhs ) )
43129     {}
43130 
43131 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43132     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_ = {} )
43133     : 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_ )
43134     {}
43135 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43136 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43137 
43138     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43139 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43140     SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43141     {
43142       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const *>( &rhs );
43143       return *this;
43144     }
43145 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43146     SwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43147     {
43148       pNext = pNext_;
43149       return *this;
43150     }
43151 
setFlagsVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43152     SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
43153     {
43154       flags = flags_;
43155       return *this;
43156     }
43157 
setSurfaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43158     SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
43159     {
43160       surface = surface_;
43161       return *this;
43162     }
43163 
setMinImageCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43164     SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT
43165     {
43166       minImageCount = minImageCount_;
43167       return *this;
43168     }
43169 
setImageFormatVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43170     SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
43171     {
43172       imageFormat = imageFormat_;
43173       return *this;
43174     }
43175 
setImageColorSpaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43176     SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT
43177     {
43178       imageColorSpace = imageColorSpace_;
43179       return *this;
43180     }
43181 
setImageExtentVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43182     SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
43183     {
43184       imageExtent = imageExtent_;
43185       return *this;
43186     }
43187 
setImageArrayLayersVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43188     SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT
43189     {
43190       imageArrayLayers = imageArrayLayers_;
43191       return *this;
43192     }
43193 
setImageUsageVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43194     SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
43195     {
43196       imageUsage = imageUsage_;
43197       return *this;
43198     }
43199 
setImageSharingModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43200     SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT
43201     {
43202       imageSharingMode = imageSharingMode_;
43203       return *this;
43204     }
43205 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43206     SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
43207     {
43208       queueFamilyIndexCount = queueFamilyIndexCount_;
43209       return *this;
43210     }
43211 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43212     SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
43213     {
43214       pQueueFamilyIndices = pQueueFamilyIndices_;
43215       return *this;
43216     }
43217 
43218 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43219     SwapchainCreateInfoKHR & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
43220     {
43221       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
43222       pQueueFamilyIndices = queueFamilyIndices_.data();
43223       return *this;
43224     }
43225 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43226 
setPreTransformVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43227     SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
43228     {
43229       preTransform = preTransform_;
43230       return *this;
43231     }
43232 
setCompositeAlphaVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43233     SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT
43234     {
43235       compositeAlpha = compositeAlpha_;
43236       return *this;
43237     }
43238 
setPresentModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43239     SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
43240     {
43241       presentMode = presentMode_;
43242       return *this;
43243     }
43244 
setClippedVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43245     SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT
43246     {
43247       clipped = clipped_;
43248       return *this;
43249     }
43250 
setOldSwapchainVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43251     SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT
43252     {
43253       oldSwapchain = oldSwapchain_;
43254       return *this;
43255     }
43256 
43257 
operator VkSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43258     operator VkSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
43259     {
43260       return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>( this );
43261     }
43262 
operator VkSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43263     operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
43264     {
43265       return *reinterpret_cast<VkSwapchainCreateInfoKHR*>( this );
43266     }
43267 
43268 
43269 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43270     auto operator<=>( SwapchainCreateInfoKHR const& ) const = default;
43271 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43272     bool operator==( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43273     {
43274       return ( sType == rhs.sType )
43275           && ( pNext == rhs.pNext )
43276           && ( flags == rhs.flags )
43277           && ( surface == rhs.surface )
43278           && ( minImageCount == rhs.minImageCount )
43279           && ( imageFormat == rhs.imageFormat )
43280           && ( imageColorSpace == rhs.imageColorSpace )
43281           && ( imageExtent == rhs.imageExtent )
43282           && ( imageArrayLayers == rhs.imageArrayLayers )
43283           && ( imageUsage == rhs.imageUsage )
43284           && ( imageSharingMode == rhs.imageSharingMode )
43285           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
43286           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
43287           && ( preTransform == rhs.preTransform )
43288           && ( compositeAlpha == rhs.compositeAlpha )
43289           && ( presentMode == rhs.presentMode )
43290           && ( clipped == rhs.clipped )
43291           && ( oldSwapchain == rhs.oldSwapchain );
43292     }
43293 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR43294     bool operator!=( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43295     {
43296       return !operator==( rhs );
43297     }
43298 #endif
43299 
43300 
43301 
43302   public:
43303     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
43304     const void* pNext = {};
43305     VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {};
43306     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
43307     uint32_t minImageCount = {};
43308     VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
43309     VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
43310     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
43311     uint32_t imageArrayLayers = {};
43312     VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
43313     VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
43314     uint32_t queueFamilyIndexCount = {};
43315     const uint32_t* pQueueFamilyIndices = {};
43316     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
43317     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque;
43318     VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
43319     VULKAN_HPP_NAMESPACE::Bool32 clipped = {};
43320     VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {};
43321 
43322   };
43323   static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
43324   static_assert( std::is_standard_layout<SwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
43325 
43326   template <>
43327   struct CppType<StructureType, StructureType::eSwapchainCreateInfoKHR>
43328   {
43329     using Type = SwapchainCreateInfoKHR;
43330   };
43331 
43332   struct ValidationCacheCreateInfoEXT
43333   {
43334     static const bool allowDuplicate = false;
43335     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT;
43336 
43337 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43338     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT
43339     : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
43340     {}
43341 
43342     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43343 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43344     ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43345       : ValidationCacheCreateInfoEXT( *reinterpret_cast<ValidationCacheCreateInfoEXT const *>( &rhs ) )
43346     {}
43347 
43348 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43349     template <typename T>
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43350     ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ )
43351     : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
43352     {}
43353 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43354 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43355 
43356     VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43357 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43358     ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43359     {
43360       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const *>( &rhs );
43361       return *this;
43362     }
43363 
setPNextVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43364     ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43365     {
43366       pNext = pNext_;
43367       return *this;
43368     }
43369 
setFlagsVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43370     ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
43371     {
43372       flags = flags_;
43373       return *this;
43374     }
43375 
setInitialDataSizeVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43376     ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
43377     {
43378       initialDataSize = initialDataSize_;
43379       return *this;
43380     }
43381 
setPInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43382     ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
43383     {
43384       pInitialData = pInitialData_;
43385       return *this;
43386     }
43387 
43388 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43389     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43390     ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
43391     {
43392       initialDataSize = initialData_.size() * sizeof(T);
43393       pInitialData = initialData_.data();
43394       return *this;
43395     }
43396 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43397 
43398 
operator VkValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43399     operator VkValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
43400     {
43401       return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( this );
43402     }
43403 
operator VkValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43404     operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
43405     {
43406       return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>( this );
43407     }
43408 
43409 
43410 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43411     auto operator<=>( ValidationCacheCreateInfoEXT const& ) const = default;
43412 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43413     bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43414     {
43415       return ( sType == rhs.sType )
43416           && ( pNext == rhs.pNext )
43417           && ( flags == rhs.flags )
43418           && ( initialDataSize == rhs.initialDataSize )
43419           && ( pInitialData == rhs.pInitialData );
43420     }
43421 
operator !=VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT43422     bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43423     {
43424       return !operator==( rhs );
43425     }
43426 #endif
43427 
43428 
43429 
43430   public:
43431     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
43432     const void* pNext = {};
43433     VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {};
43434     size_t initialDataSize = {};
43435     const void* pInitialData = {};
43436 
43437   };
43438   static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
43439   static_assert( std::is_standard_layout<ValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
43440 
43441   template <>
43442   struct CppType<StructureType, StructureType::eValidationCacheCreateInfoEXT>
43443   {
43444     using Type = ValidationCacheCreateInfoEXT;
43445   };
43446 
43447   class ValidationCacheEXT
43448   {
43449   public:
43450     using CType = VkValidationCacheEXT;
43451 
43452     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT;
43453     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
43454 
43455   public:
ValidationCacheEXT()43456     VULKAN_HPP_CONSTEXPR ValidationCacheEXT() VULKAN_HPP_NOEXCEPT
43457       : m_validationCacheEXT(VK_NULL_HANDLE)
43458     {}
43459 
ValidationCacheEXT(std::nullptr_t)43460     VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43461       : m_validationCacheEXT(VK_NULL_HANDLE)
43462     {}
43463 
ValidationCacheEXT(VkValidationCacheEXT validationCacheEXT)43464     VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT
43465       : m_validationCacheEXT( validationCacheEXT )
43466     {}
43467 
43468 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkValidationCacheEXT validationCacheEXT)43469     ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT) VULKAN_HPP_NOEXCEPT
43470     {
43471       m_validationCacheEXT = validationCacheEXT;
43472       return *this;
43473     }
43474 #endif
43475 
operator =(std::nullptr_t)43476     ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43477     {
43478       m_validationCacheEXT = VK_NULL_HANDLE;
43479       return *this;
43480     }
43481 
43482 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43483     auto operator<=>( ValidationCacheEXT const& ) const = default;
43484 #else
operator ==(ValidationCacheEXT const & rhs) const43485     bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
43486     {
43487       return m_validationCacheEXT == rhs.m_validationCacheEXT;
43488     }
43489 
operator !=(ValidationCacheEXT const & rhs) const43490     bool operator!=(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
43491     {
43492       return m_validationCacheEXT != rhs.m_validationCacheEXT;
43493     }
43494 
operator <(ValidationCacheEXT const & rhs) const43495     bool operator<(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
43496     {
43497       return m_validationCacheEXT < rhs.m_validationCacheEXT;
43498     }
43499 #endif
43500 
operator VkValidationCacheEXT() const43501     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT
43502     {
43503       return m_validationCacheEXT;
43504     }
43505 
operator bool() const43506     explicit operator bool() const VULKAN_HPP_NOEXCEPT
43507     {
43508       return m_validationCacheEXT != VK_NULL_HANDLE;
43509     }
43510 
operator !() const43511     bool operator!() const VULKAN_HPP_NOEXCEPT
43512     {
43513       return m_validationCacheEXT == VK_NULL_HANDLE;
43514     }
43515 
43516   private:
43517     VkValidationCacheEXT m_validationCacheEXT;
43518   };
43519   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" );
43520 
43521   template <>
43522   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eValidationCacheEXT>
43523   {
43524     using type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
43525   };
43526 
43527   template <>
43528   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT>
43529   {
43530     using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
43531   };
43532 
43533 
43534   template <>
43535   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT>
43536   {
43537     using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
43538   };
43539 
43540 
43541   template <>
43542   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
43543   {
43544     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
43545   };
43546 
43547   struct DisplayPowerInfoEXT
43548   {
43549     static const bool allowDuplicate = false;
43550     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT;
43551 
43552 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43553     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT(VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff) VULKAN_HPP_NOEXCEPT
43554     : powerState( powerState_ )
43555     {}
43556 
43557     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43558 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43559     DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43560       : DisplayPowerInfoEXT( *reinterpret_cast<DisplayPowerInfoEXT const *>( &rhs ) )
43561     {}
43562 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43563 
43564     VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43565 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43566     DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43567     {
43568       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const *>( &rhs );
43569       return *this;
43570     }
43571 
setPNextVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43572     DisplayPowerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43573     {
43574       pNext = pNext_;
43575       return *this;
43576     }
43577 
setPowerStateVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43578     DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT
43579     {
43580       powerState = powerState_;
43581       return *this;
43582     }
43583 
43584 
operator VkDisplayPowerInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43585     operator VkDisplayPowerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
43586     {
43587       return *reinterpret_cast<const VkDisplayPowerInfoEXT*>( this );
43588     }
43589 
operator VkDisplayPowerInfoEXT&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43590     operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT
43591     {
43592       return *reinterpret_cast<VkDisplayPowerInfoEXT*>( this );
43593     }
43594 
43595 
43596 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43597     auto operator<=>( DisplayPowerInfoEXT const& ) const = default;
43598 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43599     bool operator==( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43600     {
43601       return ( sType == rhs.sType )
43602           && ( pNext == rhs.pNext )
43603           && ( powerState == rhs.powerState );
43604     }
43605 
operator !=VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT43606     bool operator!=( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
43607     {
43608       return !operator==( rhs );
43609     }
43610 #endif
43611 
43612 
43613 
43614   public:
43615     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT;
43616     const void* pNext = {};
43617     VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff;
43618 
43619   };
43620   static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" );
43621   static_assert( std::is_standard_layout<DisplayPowerInfoEXT>::value, "struct wrapper is not a standard layout!" );
43622 
43623   template <>
43624   struct CppType<StructureType, StructureType::eDisplayPowerInfoEXT>
43625   {
43626     using Type = DisplayPowerInfoEXT;
43627   };
43628 
43629   struct MappedMemoryRange
43630   {
43631     static const bool allowDuplicate = false;
43632     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange;
43633 
43634 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange43635     VULKAN_HPP_CONSTEXPR MappedMemoryRange(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
43636     : memory( memory_ ), offset( offset_ ), size( size_ )
43637     {}
43638 
43639     VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43640 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange43641     MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
43642       : MappedMemoryRange( *reinterpret_cast<MappedMemoryRange const *>( &rhs ) )
43643     {}
43644 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43645 
43646     VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43647 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange43648     MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
43649     {
43650       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MappedMemoryRange const *>( &rhs );
43651       return *this;
43652     }
43653 
setPNextVULKAN_HPP_NAMESPACE::MappedMemoryRange43654     MappedMemoryRange & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43655     {
43656       pNext = pNext_;
43657       return *this;
43658     }
43659 
setMemoryVULKAN_HPP_NAMESPACE::MappedMemoryRange43660     MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
43661     {
43662       memory = memory_;
43663       return *this;
43664     }
43665 
setOffsetVULKAN_HPP_NAMESPACE::MappedMemoryRange43666     MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
43667     {
43668       offset = offset_;
43669       return *this;
43670     }
43671 
setSizeVULKAN_HPP_NAMESPACE::MappedMemoryRange43672     MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
43673     {
43674       size = size_;
43675       return *this;
43676     }
43677 
43678 
operator VkMappedMemoryRange const&VULKAN_HPP_NAMESPACE::MappedMemoryRange43679     operator VkMappedMemoryRange const&() const VULKAN_HPP_NOEXCEPT
43680     {
43681       return *reinterpret_cast<const VkMappedMemoryRange*>( this );
43682     }
43683 
operator VkMappedMemoryRange&VULKAN_HPP_NAMESPACE::MappedMemoryRange43684     operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
43685     {
43686       return *reinterpret_cast<VkMappedMemoryRange*>( this );
43687     }
43688 
43689 
43690 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43691     auto operator<=>( MappedMemoryRange const& ) const = default;
43692 #else
operator ==VULKAN_HPP_NAMESPACE::MappedMemoryRange43693     bool operator==( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
43694     {
43695       return ( sType == rhs.sType )
43696           && ( pNext == rhs.pNext )
43697           && ( memory == rhs.memory )
43698           && ( offset == rhs.offset )
43699           && ( size == rhs.size );
43700     }
43701 
operator !=VULKAN_HPP_NAMESPACE::MappedMemoryRange43702     bool operator!=( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
43703     {
43704       return !operator==( rhs );
43705     }
43706 #endif
43707 
43708 
43709 
43710   public:
43711     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange;
43712     const void* pNext = {};
43713     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
43714     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
43715     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
43716 
43717   };
43718   static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" );
43719   static_assert( std::is_standard_layout<MappedMemoryRange>::value, "struct wrapper is not a standard layout!" );
43720 
43721   template <>
43722   struct CppType<StructureType, StructureType::eMappedMemoryRange>
43723   {
43724     using Type = MappedMemoryRange;
43725   };
43726 
43727   struct MemoryRequirements
43728   {
43729 
43730 
43731 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements43732     VULKAN_HPP_CONSTEXPR MemoryRequirements(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
43733     : size( size_ ), alignment( alignment_ ), memoryTypeBits( memoryTypeBits_ )
43734     {}
43735 
43736     VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43737 
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements43738     MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
43739       : MemoryRequirements( *reinterpret_cast<MemoryRequirements const *>( &rhs ) )
43740     {}
43741 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43742 
43743     VULKAN_HPP_CONSTEXPR_14 MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43744 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements43745     MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
43746     {
43747       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements const *>( &rhs );
43748       return *this;
43749     }
43750 
43751 
operator VkMemoryRequirements const&VULKAN_HPP_NAMESPACE::MemoryRequirements43752     operator VkMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
43753     {
43754       return *reinterpret_cast<const VkMemoryRequirements*>( this );
43755     }
43756 
operator VkMemoryRequirements&VULKAN_HPP_NAMESPACE::MemoryRequirements43757     operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
43758     {
43759       return *reinterpret_cast<VkMemoryRequirements*>( this );
43760     }
43761 
43762 
43763 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43764     auto operator<=>( MemoryRequirements const& ) const = default;
43765 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements43766     bool operator==( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
43767     {
43768       return ( size == rhs.size )
43769           && ( alignment == rhs.alignment )
43770           && ( memoryTypeBits == rhs.memoryTypeBits );
43771     }
43772 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements43773     bool operator!=( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
43774     {
43775       return !operator==( rhs );
43776     }
43777 #endif
43778 
43779 
43780 
43781   public:
43782     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
43783     VULKAN_HPP_NAMESPACE::DeviceSize alignment = {};
43784     uint32_t memoryTypeBits = {};
43785 
43786   };
43787   static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" );
43788   static_assert( std::is_standard_layout<MemoryRequirements>::value, "struct wrapper is not a standard layout!" );
43789 
43790   struct MemoryRequirements2
43791   {
43792     static const bool allowDuplicate = false;
43793     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2;
43794 
43795 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements243796     VULKAN_HPP_CONSTEXPR MemoryRequirements2(VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT
43797     : memoryRequirements( memoryRequirements_ )
43798     {}
43799 
43800     VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43801 
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements243802     MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
43803       : MemoryRequirements2( *reinterpret_cast<MemoryRequirements2 const *>( &rhs ) )
43804     {}
43805 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43806 
43807     VULKAN_HPP_CONSTEXPR_14 MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43808 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements243809     MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
43810     {
43811       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements2 const *>( &rhs );
43812       return *this;
43813     }
43814 
43815 
operator VkMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::MemoryRequirements243816     operator VkMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
43817     {
43818       return *reinterpret_cast<const VkMemoryRequirements2*>( this );
43819     }
43820 
operator VkMemoryRequirements2&VULKAN_HPP_NAMESPACE::MemoryRequirements243821     operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
43822     {
43823       return *reinterpret_cast<VkMemoryRequirements2*>( this );
43824     }
43825 
43826 
43827 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43828     auto operator<=>( MemoryRequirements2 const& ) const = default;
43829 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements243830     bool operator==( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43831     {
43832       return ( sType == rhs.sType )
43833           && ( pNext == rhs.pNext )
43834           && ( memoryRequirements == rhs.memoryRequirements );
43835     }
43836 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements243837     bool operator!=( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43838     {
43839       return !operator==( rhs );
43840     }
43841 #endif
43842 
43843 
43844 
43845   public:
43846     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2;
43847     void* pNext = {};
43848     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
43849 
43850   };
43851   static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" );
43852   static_assert( std::is_standard_layout<MemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
43853 
43854   template <>
43855   struct CppType<StructureType, StructureType::eMemoryRequirements2>
43856   {
43857     using Type = MemoryRequirements2;
43858   };
43859   using MemoryRequirements2KHR = MemoryRequirements2;
43860 
43861   struct DeviceGroupPresentCapabilitiesKHR
43862   {
43863     static const bool allowDuplicate = false;
43864     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
43865 
43866 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43867     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR(std::array<uint32_t,VK_MAX_DEVICE_GROUP_SIZE> const& presentMask_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT
43868     : presentMask( presentMask_ ), modes( modes_ )
43869     {}
43870 
43871     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43872 
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43873     DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43874       : DeviceGroupPresentCapabilitiesKHR( *reinterpret_cast<DeviceGroupPresentCapabilitiesKHR const *>( &rhs ) )
43875     {}
43876 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43877 
43878     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43879 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43880     DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43881     {
43882       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const *>( &rhs );
43883       return *this;
43884     }
43885 
43886 
operator VkDeviceGroupPresentCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43887     operator VkDeviceGroupPresentCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
43888     {
43889       return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>( this );
43890     }
43891 
operator VkDeviceGroupPresentCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43892     operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
43893     {
43894       return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( this );
43895     }
43896 
43897 
43898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43899     auto operator<=>( DeviceGroupPresentCapabilitiesKHR const& ) const = default;
43900 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43901     bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43902     {
43903       return ( sType == rhs.sType )
43904           && ( pNext == rhs.pNext )
43905           && ( presentMask == rhs.presentMask )
43906           && ( modes == rhs.modes );
43907     }
43908 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43909     bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43910     {
43911       return !operator==( rhs );
43912     }
43913 #endif
43914 
43915 
43916 
43917   public:
43918     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
43919     const void* pNext = {};
43920     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
43921     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
43922 
43923   };
43924   static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" );
43925   static_assert( std::is_standard_layout<DeviceGroupPresentCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
43926 
43927   template <>
43928   struct CppType<StructureType, StructureType::eDeviceGroupPresentCapabilitiesKHR>
43929   {
43930     using Type = DeviceGroupPresentCapabilitiesKHR;
43931   };
43932 
43933   struct PhysicalDeviceSurfaceInfo2KHR
43934   {
43935     static const bool allowDuplicate = false;
43936     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
43937 
43938 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43939     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}) VULKAN_HPP_NOEXCEPT
43940     : surface( surface_ )
43941     {}
43942 
43943     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43944 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43945     PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
43946       : PhysicalDeviceSurfaceInfo2KHR( *reinterpret_cast<PhysicalDeviceSurfaceInfo2KHR const *>( &rhs ) )
43947     {}
43948 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43949 
43950     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43951 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43952     PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
43953     {
43954       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const *>( &rhs );
43955       return *this;
43956     }
43957 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43958     PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43959     {
43960       pNext = pNext_;
43961       return *this;
43962     }
43963 
setSurfaceVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43964     PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
43965     {
43966       surface = surface_;
43967       return *this;
43968     }
43969 
43970 
operator VkPhysicalDeviceSurfaceInfo2KHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43971     operator VkPhysicalDeviceSurfaceInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
43972     {
43973       return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( this );
43974     }
43975 
operator VkPhysicalDeviceSurfaceInfo2KHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43976     operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
43977     {
43978       return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>( this );
43979     }
43980 
43981 
43982 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43983     auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const& ) const = default;
43984 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43985     bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43986     {
43987       return ( sType == rhs.sType )
43988           && ( pNext == rhs.pNext )
43989           && ( surface == rhs.surface );
43990     }
43991 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43992     bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43993     {
43994       return !operator==( rhs );
43995     }
43996 #endif
43997 
43998 
43999 
44000   public:
44001     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
44002     const void* pNext = {};
44003     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
44004 
44005   };
44006   static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" );
44007   static_assert( std::is_standard_layout<PhysicalDeviceSurfaceInfo2KHR>::value, "struct wrapper is not a standard layout!" );
44008 
44009   template <>
44010   struct CppType<StructureType, StructureType::ePhysicalDeviceSurfaceInfo2KHR>
44011   {
44012     using Type = PhysicalDeviceSurfaceInfo2KHR;
44013   };
44014 
44015   struct DeviceMemoryOpaqueCaptureAddressInfo
44016   {
44017     static const bool allowDuplicate = false;
44018     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
44019 
44020 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44021     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT
44022     : memory( memory_ )
44023     {}
44024 
44025     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44026 
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44027     DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44028       : DeviceMemoryOpaqueCaptureAddressInfo( *reinterpret_cast<DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs ) )
44029     {}
44030 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44031 
44032     VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44033 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44034     DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44035     {
44036       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs );
44037       return *this;
44038     }
44039 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44040     DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44041     {
44042       pNext = pNext_;
44043       return *this;
44044     }
44045 
setMemoryVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44046     DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
44047     {
44048       memory = memory_;
44049       return *this;
44050     }
44051 
44052 
operator VkDeviceMemoryOpaqueCaptureAddressInfo const&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44053     operator VkDeviceMemoryOpaqueCaptureAddressInfo const&() const VULKAN_HPP_NOEXCEPT
44054     {
44055       return *reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
44056     }
44057 
operator VkDeviceMemoryOpaqueCaptureAddressInfo&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44058     operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT
44059     {
44060       return *reinterpret_cast<VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
44061     }
44062 
44063 
44064 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44065     auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const& ) const = default;
44066 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44067     bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
44068     {
44069       return ( sType == rhs.sType )
44070           && ( pNext == rhs.pNext )
44071           && ( memory == rhs.memory );
44072     }
44073 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo44074     bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
44075     {
44076       return !operator==( rhs );
44077     }
44078 #endif
44079 
44080 
44081 
44082   public:
44083     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
44084     const void* pNext = {};
44085     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
44086 
44087   };
44088   static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), "struct and wrapper have different size!" );
44089   static_assert( std::is_standard_layout<DeviceMemoryOpaqueCaptureAddressInfo>::value, "struct wrapper is not a standard layout!" );
44090 
44091   template <>
44092   struct CppType<StructureType, StructureType::eDeviceMemoryOpaqueCaptureAddressInfo>
44093   {
44094     using Type = DeviceMemoryOpaqueCaptureAddressInfo;
44095   };
44096   using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
44097 
44098   struct PresentInfoKHR
44099   {
44100     static const bool allowDuplicate = false;
44101     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR;
44102 
44103 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR44104     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
44105     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), swapchainCount( swapchainCount_ ), pSwapchains( pSwapchains_ ), pImageIndices( pImageIndices_ ), pResults( pResults_ )
44106     {}
44107 
44108     VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44109 
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR44110     PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44111       : PresentInfoKHR( *reinterpret_cast<PresentInfoKHR const *>( &rhs ) )
44112     {}
44113 
44114 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR44115     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_ = {} )
44116     : 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() )
44117     {
44118 #ifdef VULKAN_HPP_NO_EXCEPTIONS
44119       VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() );
44120       VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) );
44121       VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) );
44122 #else
44123       if ( swapchains_.size() != imageIndices_.size() )
44124       {
44125         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" );
44126       }
44127       if ( !results_.empty() && ( swapchains_.size() != results_.size() ) )
44128       {
44129         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" );
44130       }
44131       if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) )
44132       {
44133         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" );
44134       }
44135 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
44136     }
44137 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44138 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44139 
44140     VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44141 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR44142     PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44143     {
44144       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentInfoKHR const *>( &rhs );
44145       return *this;
44146     }
44147 
setPNextVULKAN_HPP_NAMESPACE::PresentInfoKHR44148     PresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44149     {
44150       pNext = pNext_;
44151       return *this;
44152     }
44153 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::PresentInfoKHR44154     PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
44155     {
44156       waitSemaphoreCount = waitSemaphoreCount_;
44157       return *this;
44158     }
44159 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR44160     PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
44161     {
44162       pWaitSemaphores = pWaitSemaphores_;
44163       return *this;
44164     }
44165 
44166 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR44167     PresentInfoKHR & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
44168     {
44169       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
44170       pWaitSemaphores = waitSemaphores_.data();
44171       return *this;
44172     }
44173 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44174 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentInfoKHR44175     PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
44176     {
44177       swapchainCount = swapchainCount_;
44178       return *this;
44179     }
44180 
setPSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR44181     PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ ) VULKAN_HPP_NOEXCEPT
44182     {
44183       pSwapchains = pSwapchains_;
44184       return *this;
44185     }
44186 
44187 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR44188     PresentInfoKHR & setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ ) VULKAN_HPP_NOEXCEPT
44189     {
44190       swapchainCount = static_cast<uint32_t>( swapchains_.size() );
44191       pSwapchains = swapchains_.data();
44192       return *this;
44193     }
44194 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44195 
setPImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR44196     PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ ) VULKAN_HPP_NOEXCEPT
44197     {
44198       pImageIndices = pImageIndices_;
44199       return *this;
44200     }
44201 
44202 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR44203     PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
44204     {
44205       swapchainCount = static_cast<uint32_t>( imageIndices_.size() );
44206       pImageIndices = imageIndices_.data();
44207       return *this;
44208     }
44209 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44210 
setPResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR44211     PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result* pResults_ ) VULKAN_HPP_NOEXCEPT
44212     {
44213       pResults = pResults_;
44214       return *this;
44215     }
44216 
44217 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR44218     PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ ) VULKAN_HPP_NOEXCEPT
44219     {
44220       swapchainCount = static_cast<uint32_t>( results_.size() );
44221       pResults = results_.data();
44222       return *this;
44223     }
44224 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44225 
44226 
operator VkPresentInfoKHR const&VULKAN_HPP_NAMESPACE::PresentInfoKHR44227     operator VkPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
44228     {
44229       return *reinterpret_cast<const VkPresentInfoKHR*>( this );
44230     }
44231 
operator VkPresentInfoKHR&VULKAN_HPP_NAMESPACE::PresentInfoKHR44232     operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
44233     {
44234       return *reinterpret_cast<VkPresentInfoKHR*>( this );
44235     }
44236 
44237 
44238 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44239     auto operator<=>( PresentInfoKHR const& ) const = default;
44240 #else
operator ==VULKAN_HPP_NAMESPACE::PresentInfoKHR44241     bool operator==( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44242     {
44243       return ( sType == rhs.sType )
44244           && ( pNext == rhs.pNext )
44245           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
44246           && ( pWaitSemaphores == rhs.pWaitSemaphores )
44247           && ( swapchainCount == rhs.swapchainCount )
44248           && ( pSwapchains == rhs.pSwapchains )
44249           && ( pImageIndices == rhs.pImageIndices )
44250           && ( pResults == rhs.pResults );
44251     }
44252 
operator !=VULKAN_HPP_NAMESPACE::PresentInfoKHR44253     bool operator!=( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44254     {
44255       return !operator==( rhs );
44256     }
44257 #endif
44258 
44259 
44260 
44261   public:
44262     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR;
44263     const void* pNext = {};
44264     uint32_t waitSemaphoreCount = {};
44265     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
44266     uint32_t swapchainCount = {};
44267     const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains = {};
44268     const uint32_t* pImageIndices = {};
44269     VULKAN_HPP_NAMESPACE::Result* pResults = {};
44270 
44271   };
44272   static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" );
44273   static_assert( std::is_standard_layout<PresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
44274 
44275   template <>
44276   struct CppType<StructureType, StructureType::ePresentInfoKHR>
44277   {
44278     using Type = PresentInfoKHR;
44279   };
44280 
44281   struct SubmitInfo
44282   {
44283     static const bool allowDuplicate = false;
44284     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo;
44285 
44286 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo44287     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
44288     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), pWaitDstStageMask( pWaitDstStageMask_ ), commandBufferCount( commandBufferCount_ ), pCommandBuffers( pCommandBuffers_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
44289     {}
44290 
44291     VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44292 
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo44293     SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44294       : SubmitInfo( *reinterpret_cast<SubmitInfo const *>( &rhs ) )
44295     {}
44296 
44297 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo44298     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_ = {} )
44299     : 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() )
44300     {
44301 #ifdef VULKAN_HPP_NO_EXCEPTIONS
44302       VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() );
44303 #else
44304       if ( waitSemaphores_.size() != waitDstStageMask_.size() )
44305       {
44306         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" );
44307       }
44308 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
44309     }
44310 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44311 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44312 
44313     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44314 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo44315     SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
44316     {
44317       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo const *>( &rhs );
44318       return *this;
44319     }
44320 
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo44321     SubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44322     {
44323       pNext = pNext_;
44324       return *this;
44325     }
44326 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo44327     SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
44328     {
44329       waitSemaphoreCount = waitSemaphoreCount_;
44330       return *this;
44331     }
44332 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo44333     SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
44334     {
44335       pWaitSemaphores = pWaitSemaphores_;
44336       return *this;
44337     }
44338 
44339 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo44340     SubmitInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
44341     {
44342       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
44343       pWaitSemaphores = waitSemaphores_.data();
44344       return *this;
44345     }
44346 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44347 
setPWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo44348     SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
44349     {
44350       pWaitDstStageMask = pWaitDstStageMask_;
44351       return *this;
44352     }
44353 
44354 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo44355     SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
44356     {
44357       waitSemaphoreCount = static_cast<uint32_t>( waitDstStageMask_.size() );
44358       pWaitDstStageMask = waitDstStageMask_.data();
44359       return *this;
44360     }
44361 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44362 
setCommandBufferCountVULKAN_HPP_NAMESPACE::SubmitInfo44363     SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
44364     {
44365       commandBufferCount = commandBufferCount_;
44366       return *this;
44367     }
44368 
setPCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo44369     SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT
44370     {
44371       pCommandBuffers = pCommandBuffers_;
44372       return *this;
44373     }
44374 
44375 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo44376     SubmitInfo & setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT
44377     {
44378       commandBufferCount = static_cast<uint32_t>( commandBuffers_.size() );
44379       pCommandBuffers = commandBuffers_.data();
44380       return *this;
44381     }
44382 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44383 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo44384     SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
44385     {
44386       signalSemaphoreCount = signalSemaphoreCount_;
44387       return *this;
44388     }
44389 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo44390     SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
44391     {
44392       pSignalSemaphores = pSignalSemaphores_;
44393       return *this;
44394     }
44395 
44396 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo44397     SubmitInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
44398     {
44399       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
44400       pSignalSemaphores = signalSemaphores_.data();
44401       return *this;
44402     }
44403 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44404 
44405 
operator VkSubmitInfo const&VULKAN_HPP_NAMESPACE::SubmitInfo44406     operator VkSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
44407     {
44408       return *reinterpret_cast<const VkSubmitInfo*>( this );
44409     }
44410 
operator VkSubmitInfo&VULKAN_HPP_NAMESPACE::SubmitInfo44411     operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
44412     {
44413       return *reinterpret_cast<VkSubmitInfo*>( this );
44414     }
44415 
44416 
44417 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44418     auto operator<=>( SubmitInfo const& ) const = default;
44419 #else
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo44420     bool operator==( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
44421     {
44422       return ( sType == rhs.sType )
44423           && ( pNext == rhs.pNext )
44424           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
44425           && ( pWaitSemaphores == rhs.pWaitSemaphores )
44426           && ( pWaitDstStageMask == rhs.pWaitDstStageMask )
44427           && ( commandBufferCount == rhs.commandBufferCount )
44428           && ( pCommandBuffers == rhs.pCommandBuffers )
44429           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
44430           && ( pSignalSemaphores == rhs.pSignalSemaphores );
44431     }
44432 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo44433     bool operator!=( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
44434     {
44435       return !operator==( rhs );
44436     }
44437 #endif
44438 
44439 
44440 
44441   public:
44442     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo;
44443     const void* pNext = {};
44444     uint32_t waitSemaphoreCount = {};
44445     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
44446     const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask = {};
44447     uint32_t commandBufferCount = {};
44448     const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers = {};
44449     uint32_t signalSemaphoreCount = {};
44450     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
44451 
44452   };
44453   static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" );
44454   static_assert( std::is_standard_layout<SubmitInfo>::value, "struct wrapper is not a standard layout!" );
44455 
44456   template <>
44457   struct CppType<StructureType, StructureType::eSubmitInfo>
44458   {
44459     using Type = SubmitInfo;
44460   };
44461 
44462   struct SemaphoreSubmitInfoKHR
44463   {
44464     static const bool allowDuplicate = false;
44465     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSubmitInfoKHR;
44466 
44467 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreSubmitInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44468     VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask_ = {}, uint32_t deviceIndex_ = {}) VULKAN_HPP_NOEXCEPT
44469     : semaphore( semaphore_ ), value( value_ ), stageMask( stageMask_ ), deviceIndex( deviceIndex_ )
44470     {}
44471 
44472     VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfoKHR( SemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44473 
SemaphoreSubmitInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44474     SemaphoreSubmitInfoKHR( VkSemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44475       : SemaphoreSubmitInfoKHR( *reinterpret_cast<SemaphoreSubmitInfoKHR const *>( &rhs ) )
44476     {}
44477 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44478 
44479     VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfoKHR & operator=( SemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44480 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44481     SemaphoreSubmitInfoKHR & operator=( VkSemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44482     {
44483       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR const *>( &rhs );
44484       return *this;
44485     }
44486 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44487     SemaphoreSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44488     {
44489       pNext = pNext_;
44490       return *this;
44491     }
44492 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44493     SemaphoreSubmitInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
44494     {
44495       semaphore = semaphore_;
44496       return *this;
44497     }
44498 
setValueVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44499     SemaphoreSubmitInfoKHR & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
44500     {
44501       value = value_;
44502       return *this;
44503     }
44504 
setStageMaskVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44505     SemaphoreSubmitInfoKHR & setStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask_ ) VULKAN_HPP_NOEXCEPT
44506     {
44507       stageMask = stageMask_;
44508       return *this;
44509     }
44510 
setDeviceIndexVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44511     SemaphoreSubmitInfoKHR & setDeviceIndex( uint32_t deviceIndex_ ) VULKAN_HPP_NOEXCEPT
44512     {
44513       deviceIndex = deviceIndex_;
44514       return *this;
44515     }
44516 
44517 
operator VkSemaphoreSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44518     operator VkSemaphoreSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
44519     {
44520       return *reinterpret_cast<const VkSemaphoreSubmitInfoKHR*>( this );
44521     }
44522 
operator VkSemaphoreSubmitInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44523     operator VkSemaphoreSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
44524     {
44525       return *reinterpret_cast<VkSemaphoreSubmitInfoKHR*>( this );
44526     }
44527 
44528 
44529 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44530     auto operator<=>( SemaphoreSubmitInfoKHR const& ) const = default;
44531 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44532     bool operator==( SemaphoreSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44533     {
44534       return ( sType == rhs.sType )
44535           && ( pNext == rhs.pNext )
44536           && ( semaphore == rhs.semaphore )
44537           && ( value == rhs.value )
44538           && ( stageMask == rhs.stageMask )
44539           && ( deviceIndex == rhs.deviceIndex );
44540     }
44541 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR44542     bool operator!=( SemaphoreSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44543     {
44544       return !operator==( rhs );
44545     }
44546 #endif
44547 
44548 
44549 
44550   public:
44551     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSubmitInfoKHR;
44552     const void* pNext = {};
44553     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
44554     uint64_t value = {};
44555     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask = {};
44556     uint32_t deviceIndex = {};
44557 
44558   };
44559   static_assert( sizeof( SemaphoreSubmitInfoKHR ) == sizeof( VkSemaphoreSubmitInfoKHR ), "struct and wrapper have different size!" );
44560   static_assert( std::is_standard_layout<SemaphoreSubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
44561 
44562   template <>
44563   struct CppType<StructureType, StructureType::eSemaphoreSubmitInfoKHR>
44564   {
44565     using Type = SemaphoreSubmitInfoKHR;
44566   };
44567 
44568   struct SubmitInfo2KHR
44569   {
44570     static const bool allowDuplicate = false;
44571     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo2KHR;
44572 
44573 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubmitInfo2KHRVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44574     VULKAN_HPP_CONSTEXPR SubmitInfo2KHR(VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_ = {}, uint32_t waitSemaphoreInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pWaitSemaphoreInfos_ = {}, uint32_t commandBufferInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR* pCommandBufferInfos_ = {}, uint32_t signalSemaphoreInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pSignalSemaphoreInfos_ = {}) VULKAN_HPP_NOEXCEPT
44575     : flags( flags_ ), waitSemaphoreInfoCount( waitSemaphoreInfoCount_ ), pWaitSemaphoreInfos( pWaitSemaphoreInfos_ ), commandBufferInfoCount( commandBufferInfoCount_ ), pCommandBufferInfos( pCommandBufferInfos_ ), signalSemaphoreInfoCount( signalSemaphoreInfoCount_ ), pSignalSemaphoreInfos( pSignalSemaphoreInfos_ )
44576     {}
44577 
44578     VULKAN_HPP_CONSTEXPR SubmitInfo2KHR( SubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44579 
SubmitInfo2KHRVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44580     SubmitInfo2KHR( VkSubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
44581       : SubmitInfo2KHR( *reinterpret_cast<SubmitInfo2KHR const *>( &rhs ) )
44582     {}
44583 
44584 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubmitInfo2KHRVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44585     SubmitInfo2KHR( VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR> const & waitSemaphoreInfos_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR> const & commandBufferInfos_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR> const & signalSemaphoreInfos_ = {} )
44586     : flags( flags_ ), waitSemaphoreInfoCount( static_cast<uint32_t>( waitSemaphoreInfos_.size() ) ), pWaitSemaphoreInfos( waitSemaphoreInfos_.data() ), commandBufferInfoCount( static_cast<uint32_t>( commandBufferInfos_.size() ) ), pCommandBufferInfos( commandBufferInfos_.data() ), signalSemaphoreInfoCount( static_cast<uint32_t>( signalSemaphoreInfos_.size() ) ), pSignalSemaphoreInfos( signalSemaphoreInfos_.data() )
44587     {}
44588 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44589 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44590 
44591     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2KHR & operator=( SubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44592 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo2KHR44593     SubmitInfo2KHR & operator=( VkSubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
44594     {
44595       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo2KHR const *>( &rhs );
44596       return *this;
44597     }
44598 
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44599     SubmitInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44600     {
44601       pNext = pNext_;
44602       return *this;
44603     }
44604 
setFlagsVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44605     SubmitInfo2KHR & setFlags( VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
44606     {
44607       flags = flags_;
44608       return *this;
44609     }
44610 
setWaitSemaphoreInfoCountVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44611     SubmitInfo2KHR & setWaitSemaphoreInfoCount( uint32_t waitSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
44612     {
44613       waitSemaphoreInfoCount = waitSemaphoreInfoCount_;
44614       return *this;
44615     }
44616 
setPWaitSemaphoreInfosVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44617     SubmitInfo2KHR & setPWaitSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pWaitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
44618     {
44619       pWaitSemaphoreInfos = pWaitSemaphoreInfos_;
44620       return *this;
44621     }
44622 
44623 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreInfosVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44624     SubmitInfo2KHR & setWaitSemaphoreInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR> const & waitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
44625     {
44626       waitSemaphoreInfoCount = static_cast<uint32_t>( waitSemaphoreInfos_.size() );
44627       pWaitSemaphoreInfos = waitSemaphoreInfos_.data();
44628       return *this;
44629     }
44630 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44631 
setCommandBufferInfoCountVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44632     SubmitInfo2KHR & setCommandBufferInfoCount( uint32_t commandBufferInfoCount_ ) VULKAN_HPP_NOEXCEPT
44633     {
44634       commandBufferInfoCount = commandBufferInfoCount_;
44635       return *this;
44636     }
44637 
setPCommandBufferInfosVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44638     SubmitInfo2KHR & setPCommandBufferInfos( const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR* pCommandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
44639     {
44640       pCommandBufferInfos = pCommandBufferInfos_;
44641       return *this;
44642     }
44643 
44644 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBufferInfosVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44645     SubmitInfo2KHR & setCommandBufferInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR> const & commandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
44646     {
44647       commandBufferInfoCount = static_cast<uint32_t>( commandBufferInfos_.size() );
44648       pCommandBufferInfos = commandBufferInfos_.data();
44649       return *this;
44650     }
44651 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44652 
setSignalSemaphoreInfoCountVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44653     SubmitInfo2KHR & setSignalSemaphoreInfoCount( uint32_t signalSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
44654     {
44655       signalSemaphoreInfoCount = signalSemaphoreInfoCount_;
44656       return *this;
44657     }
44658 
setPSignalSemaphoreInfosVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44659     SubmitInfo2KHR & setPSignalSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pSignalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
44660     {
44661       pSignalSemaphoreInfos = pSignalSemaphoreInfos_;
44662       return *this;
44663     }
44664 
44665 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreInfosVULKAN_HPP_NAMESPACE::SubmitInfo2KHR44666     SubmitInfo2KHR & setSignalSemaphoreInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR> const & signalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
44667     {
44668       signalSemaphoreInfoCount = static_cast<uint32_t>( signalSemaphoreInfos_.size() );
44669       pSignalSemaphoreInfos = signalSemaphoreInfos_.data();
44670       return *this;
44671     }
44672 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
44673 
44674 
operator VkSubmitInfo2KHR const&VULKAN_HPP_NAMESPACE::SubmitInfo2KHR44675     operator VkSubmitInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
44676     {
44677       return *reinterpret_cast<const VkSubmitInfo2KHR*>( this );
44678     }
44679 
operator VkSubmitInfo2KHR&VULKAN_HPP_NAMESPACE::SubmitInfo2KHR44680     operator VkSubmitInfo2KHR &() VULKAN_HPP_NOEXCEPT
44681     {
44682       return *reinterpret_cast<VkSubmitInfo2KHR*>( this );
44683     }
44684 
44685 
44686 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44687     auto operator<=>( SubmitInfo2KHR const& ) const = default;
44688 #else
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo2KHR44689     bool operator==( SubmitInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44690     {
44691       return ( sType == rhs.sType )
44692           && ( pNext == rhs.pNext )
44693           && ( flags == rhs.flags )
44694           && ( waitSemaphoreInfoCount == rhs.waitSemaphoreInfoCount )
44695           && ( pWaitSemaphoreInfos == rhs.pWaitSemaphoreInfos )
44696           && ( commandBufferInfoCount == rhs.commandBufferInfoCount )
44697           && ( pCommandBufferInfos == rhs.pCommandBufferInfos )
44698           && ( signalSemaphoreInfoCount == rhs.signalSemaphoreInfoCount )
44699           && ( pSignalSemaphoreInfos == rhs.pSignalSemaphoreInfos );
44700     }
44701 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo2KHR44702     bool operator!=( SubmitInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44703     {
44704       return !operator==( rhs );
44705     }
44706 #endif
44707 
44708 
44709 
44710   public:
44711     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo2KHR;
44712     const void* pNext = {};
44713     VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags = {};
44714     uint32_t waitSemaphoreInfoCount = {};
44715     const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pWaitSemaphoreInfos = {};
44716     uint32_t commandBufferInfoCount = {};
44717     const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR* pCommandBufferInfos = {};
44718     uint32_t signalSemaphoreInfoCount = {};
44719     const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pSignalSemaphoreInfos = {};
44720 
44721   };
44722   static_assert( sizeof( SubmitInfo2KHR ) == sizeof( VkSubmitInfo2KHR ), "struct and wrapper have different size!" );
44723   static_assert( std::is_standard_layout<SubmitInfo2KHR>::value, "struct wrapper is not a standard layout!" );
44724 
44725   template <>
44726   struct CppType<StructureType, StructureType::eSubmitInfo2KHR>
44727   {
44728     using Type = SubmitInfo2KHR;
44729   };
44730 
44731   class Queue
44732   {
44733   public:
44734     using CType = VkQueue;
44735 
44736     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue;
44737     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
44738 
44739   public:
Queue()44740     VULKAN_HPP_CONSTEXPR Queue() VULKAN_HPP_NOEXCEPT
44741       : m_queue(VK_NULL_HANDLE)
44742     {}
44743 
Queue(std::nullptr_t)44744     VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
44745       : m_queue(VK_NULL_HANDLE)
44746     {}
44747 
Queue(VkQueue queue)44748     VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT
44749       : m_queue( queue )
44750     {}
44751 
44752 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueue queue)44753     Queue & operator=(VkQueue queue) VULKAN_HPP_NOEXCEPT
44754     {
44755       m_queue = queue;
44756       return *this;
44757     }
44758 #endif
44759 
operator =(std::nullptr_t)44760     Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
44761     {
44762       m_queue = VK_NULL_HANDLE;
44763       return *this;
44764     }
44765 
44766 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44767     auto operator<=>( Queue const& ) const = default;
44768 #else
operator ==(Queue const & rhs) const44769     bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
44770     {
44771       return m_queue == rhs.m_queue;
44772     }
44773 
operator !=(Queue const & rhs) const44774     bool operator!=(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
44775     {
44776       return m_queue != rhs.m_queue;
44777     }
44778 
operator <(Queue const & rhs) const44779     bool operator<(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
44780     {
44781       return m_queue < rhs.m_queue;
44782     }
44783 #endif
44784 
44785 
44786     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44787     void getCheckpointData2NV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointData2NV* pCheckpointData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44788 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
44789     template <typename CheckpointData2NVAllocator = std::allocator<CheckpointData2NV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44790     VULKAN_HPP_NODISCARD std::vector<CheckpointData2NV, CheckpointData2NVAllocator> getCheckpointData2NV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
44791     template <typename CheckpointData2NVAllocator = std::allocator<CheckpointData2NV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CheckpointData2NVAllocator, typename std::enable_if<std::is_same<typename B::value_type, CheckpointData2NV>::value, int>::type = 0>
44792     VULKAN_HPP_NODISCARD std::vector<CheckpointData2NV, CheckpointData2NVAllocator> getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
44793 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44794 
44795 
44796     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44797     void getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44798 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
44799     template <typename CheckpointDataNVAllocator = std::allocator<CheckpointDataNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44800     VULKAN_HPP_NODISCARD std::vector<CheckpointDataNV, CheckpointDataNVAllocator> getCheckpointDataNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
44801     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>
44802     VULKAN_HPP_NODISCARD std::vector<CheckpointDataNV, CheckpointDataNVAllocator> getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
44803 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44804 
44805 
44806     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44807     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44808 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
44809     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44810     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44811 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44812 
44813 
44814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44815     VULKAN_HPP_NODISCARD Result bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
44817     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44818     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;
44819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44820 
44821 
44822     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44823     void endDebugUtilsLabelEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44824 
44825 
44826     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44827     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44828 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
44829     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44830     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44831 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44832 
44833 
44834     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44835     VULKAN_HPP_NODISCARD Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44836 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
44837     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44838     VULKAN_HPP_NODISCARD Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
44839 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44840 
44841 
44842 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
44843     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44844     VULKAN_HPP_NODISCARD Result setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44845 #else
44846     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44847     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;
44848 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44849 
44850 
44851 
44852     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44853     VULKAN_HPP_NODISCARD Result submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44854 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
44855     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44856     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;
44857 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44858 
44859 
44860     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44861     VULKAN_HPP_NODISCARD Result submit2KHR( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44862 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
44863     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44864     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type submit2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR> const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
44865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44866 
44867 
44868 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
44869     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44870     VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
44871 #else
44872     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
44873     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
44874 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
44875 
44876 
operator VkQueue() const44877     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT
44878     {
44879       return m_queue;
44880     }
44881 
operator bool() const44882     explicit operator bool() const VULKAN_HPP_NOEXCEPT
44883     {
44884       return m_queue != VK_NULL_HANDLE;
44885     }
44886 
operator !() const44887     bool operator!() const VULKAN_HPP_NOEXCEPT
44888     {
44889       return m_queue == VK_NULL_HANDLE;
44890     }
44891 
44892   private:
44893     VkQueue m_queue;
44894   };
44895   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" );
44896 
44897   template <>
44898   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueue>
44899   {
44900     using type = VULKAN_HPP_NAMESPACE::Queue;
44901   };
44902 
44903   template <>
44904   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eQueue>
44905   {
44906     using Type = VULKAN_HPP_NAMESPACE::Queue;
44907   };
44908 
44909 
44910   template <>
44911   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue>
44912   {
44913     using Type = VULKAN_HPP_NAMESPACE::Queue;
44914   };
44915 
44916 
44917   template <>
44918   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Queue>
44919   {
44920     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
44921   };
44922 
44923   struct DeviceQueueInfo2
44924   {
44925     static const bool allowDuplicate = false;
44926     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2;
44927 
44928 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo244929     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueIndex_ = {}) VULKAN_HPP_NOEXCEPT
44930     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueIndex( queueIndex_ )
44931     {}
44932 
44933     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44934 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo244935     DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44936       : DeviceQueueInfo2( *reinterpret_cast<DeviceQueueInfo2 const *>( &rhs ) )
44937     {}
44938 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44939 
44940     VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44941 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo244942     DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44943     {
44944       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const *>( &rhs );
44945       return *this;
44946     }
44947 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueInfo244948     DeviceQueueInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44949     {
44950       pNext = pNext_;
44951       return *this;
44952     }
44953 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueInfo244954     DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
44955     {
44956       flags = flags_;
44957       return *this;
44958     }
44959 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo244960     DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
44961     {
44962       queueFamilyIndex = queueFamilyIndex_;
44963       return *this;
44964     }
44965 
setQueueIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo244966     DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT
44967     {
44968       queueIndex = queueIndex_;
44969       return *this;
44970     }
44971 
44972 
operator VkDeviceQueueInfo2 const&VULKAN_HPP_NAMESPACE::DeviceQueueInfo244973     operator VkDeviceQueueInfo2 const&() const VULKAN_HPP_NOEXCEPT
44974     {
44975       return *reinterpret_cast<const VkDeviceQueueInfo2*>( this );
44976     }
44977 
operator VkDeviceQueueInfo2&VULKAN_HPP_NAMESPACE::DeviceQueueInfo244978     operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT
44979     {
44980       return *reinterpret_cast<VkDeviceQueueInfo2*>( this );
44981     }
44982 
44983 
44984 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44985     auto operator<=>( DeviceQueueInfo2 const& ) const = default;
44986 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueInfo244987     bool operator==( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44988     {
44989       return ( sType == rhs.sType )
44990           && ( pNext == rhs.pNext )
44991           && ( flags == rhs.flags )
44992           && ( queueFamilyIndex == rhs.queueFamilyIndex )
44993           && ( queueIndex == rhs.queueIndex );
44994     }
44995 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueInfo244996     bool operator!=( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44997     {
44998       return !operator==( rhs );
44999     }
45000 #endif
45001 
45002 
45003 
45004   public:
45005     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2;
45006     const void* pNext = {};
45007     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
45008     uint32_t queueFamilyIndex = {};
45009     uint32_t queueIndex = {};
45010 
45011   };
45012   static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" );
45013   static_assert( std::is_standard_layout<DeviceQueueInfo2>::value, "struct wrapper is not a standard layout!" );
45014 
45015   template <>
45016   struct CppType<StructureType, StructureType::eDeviceQueueInfo2>
45017   {
45018     using Type = DeviceQueueInfo2;
45019   };
45020 
45021   struct FenceGetFdInfoKHR
45022   {
45023     static const bool allowDuplicate = false;
45024     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR;
45025 
45026 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45027     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
45028     : fence( fence_ ), handleType( handleType_ )
45029     {}
45030 
45031     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45032 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45033     FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45034       : FenceGetFdInfoKHR( *reinterpret_cast<FenceGetFdInfoKHR const *>( &rhs ) )
45035     {}
45036 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45037 
45038     VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45039 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45040     FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45041     {
45042       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const *>( &rhs );
45043       return *this;
45044     }
45045 
setPNextVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45046     FenceGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45047     {
45048       pNext = pNext_;
45049       return *this;
45050     }
45051 
setFenceVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45052     FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
45053     {
45054       fence = fence_;
45055       return *this;
45056     }
45057 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45058     FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45059     {
45060       handleType = handleType_;
45061       return *this;
45062     }
45063 
45064 
operator VkFenceGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45065     operator VkFenceGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45066     {
45067       return *reinterpret_cast<const VkFenceGetFdInfoKHR*>( this );
45068     }
45069 
operator VkFenceGetFdInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45070     operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
45071     {
45072       return *reinterpret_cast<VkFenceGetFdInfoKHR*>( this );
45073     }
45074 
45075 
45076 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45077     auto operator<=>( FenceGetFdInfoKHR const& ) const = default;
45078 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45079     bool operator==( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45080     {
45081       return ( sType == rhs.sType )
45082           && ( pNext == rhs.pNext )
45083           && ( fence == rhs.fence )
45084           && ( handleType == rhs.handleType );
45085     }
45086 
operator !=VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR45087     bool operator!=( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45088     {
45089       return !operator==( rhs );
45090     }
45091 #endif
45092 
45093 
45094 
45095   public:
45096     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR;
45097     const void* pNext = {};
45098     VULKAN_HPP_NAMESPACE::Fence fence = {};
45099     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
45100 
45101   };
45102   static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" );
45103   static_assert( std::is_standard_layout<FenceGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
45104 
45105   template <>
45106   struct CppType<StructureType, StructureType::eFenceGetFdInfoKHR>
45107   {
45108     using Type = FenceGetFdInfoKHR;
45109   };
45110 
45111 #ifdef VK_USE_PLATFORM_WIN32_KHR
45112   struct FenceGetWin32HandleInfoKHR
45113   {
45114     static const bool allowDuplicate = false;
45115     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR;
45116 
45117 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45118     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
45119     : fence( fence_ ), handleType( handleType_ )
45120     {}
45121 
45122     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45123 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45124     FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45125       : FenceGetWin32HandleInfoKHR( *reinterpret_cast<FenceGetWin32HandleInfoKHR const *>( &rhs ) )
45126     {}
45127 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45128 
45129     VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45130 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45131     FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45132     {
45133       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const *>( &rhs );
45134       return *this;
45135     }
45136 
setPNextVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45137     FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45138     {
45139       pNext = pNext_;
45140       return *this;
45141     }
45142 
setFenceVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45143     FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
45144     {
45145       fence = fence_;
45146       return *this;
45147     }
45148 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45149     FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45150     {
45151       handleType = handleType_;
45152       return *this;
45153     }
45154 
45155 
operator VkFenceGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45156     operator VkFenceGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45157     {
45158       return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( this );
45159     }
45160 
operator VkFenceGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45161     operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
45162     {
45163       return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>( this );
45164     }
45165 
45166 
45167 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45168     auto operator<=>( FenceGetWin32HandleInfoKHR const& ) const = default;
45169 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45170     bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45171     {
45172       return ( sType == rhs.sType )
45173           && ( pNext == rhs.pNext )
45174           && ( fence == rhs.fence )
45175           && ( handleType == rhs.handleType );
45176     }
45177 
operator !=VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR45178     bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45179     {
45180       return !operator==( rhs );
45181     }
45182 #endif
45183 
45184 
45185 
45186   public:
45187     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
45188     const void* pNext = {};
45189     VULKAN_HPP_NAMESPACE::Fence fence = {};
45190     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
45191 
45192   };
45193   static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
45194   static_assert( std::is_standard_layout<FenceGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
45195 
45196   template <>
45197   struct CppType<StructureType, StructureType::eFenceGetWin32HandleInfoKHR>
45198   {
45199     using Type = FenceGetWin32HandleInfoKHR;
45200   };
45201 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45202 
45203   struct GeneratedCommandsMemoryRequirementsInfoNV
45204   {
45205     static const bool allowDuplicate = false;
45206     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
45207 
45208 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45209     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
45210     : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), maxSequencesCount( maxSequencesCount_ )
45211     {}
45212 
45213     VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45214 
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45215     GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
45216       : GeneratedCommandsMemoryRequirementsInfoNV( *reinterpret_cast<GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs ) )
45217     {}
45218 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45219 
45220     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45221 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45222     GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
45223     {
45224       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs );
45225       return *this;
45226     }
45227 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45228     GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45229     {
45230       pNext = pNext_;
45231       return *this;
45232     }
45233 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45234     GeneratedCommandsMemoryRequirementsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
45235     {
45236       pipelineBindPoint = pipelineBindPoint_;
45237       return *this;
45238     }
45239 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45240     GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
45241     {
45242       pipeline = pipeline_;
45243       return *this;
45244     }
45245 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45246     GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
45247     {
45248       indirectCommandsLayout = indirectCommandsLayout_;
45249       return *this;
45250     }
45251 
setMaxSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45252     GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT
45253     {
45254       maxSequencesCount = maxSequencesCount_;
45255       return *this;
45256     }
45257 
45258 
operator VkGeneratedCommandsMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45259     operator VkGeneratedCommandsMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
45260     {
45261       return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
45262     }
45263 
operator VkGeneratedCommandsMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45264     operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
45265     {
45266       return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
45267     }
45268 
45269 
45270 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45271     auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const& ) const = default;
45272 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45273     bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
45274     {
45275       return ( sType == rhs.sType )
45276           && ( pNext == rhs.pNext )
45277           && ( pipelineBindPoint == rhs.pipelineBindPoint )
45278           && ( pipeline == rhs.pipeline )
45279           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
45280           && ( maxSequencesCount == rhs.maxSequencesCount );
45281     }
45282 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV45283     bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
45284     {
45285       return !operator==( rhs );
45286     }
45287 #endif
45288 
45289 
45290 
45291   public:
45292     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
45293     const void* pNext = {};
45294     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
45295     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
45296     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
45297     uint32_t maxSequencesCount = {};
45298 
45299   };
45300   static_assert( sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) == sizeof( VkGeneratedCommandsMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
45301   static_assert( std::is_standard_layout<GeneratedCommandsMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
45302 
45303   template <>
45304   struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoNV>
45305   {
45306     using Type = GeneratedCommandsMemoryRequirementsInfoNV;
45307   };
45308 
45309   struct ImageDrmFormatModifierPropertiesEXT
45310   {
45311     static const bool allowDuplicate = false;
45312     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT;
45313 
45314 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT45315     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}) VULKAN_HPP_NOEXCEPT
45316     : drmFormatModifier( drmFormatModifier_ )
45317     {}
45318 
45319     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45320 
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT45321     ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45322       : ImageDrmFormatModifierPropertiesEXT( *reinterpret_cast<ImageDrmFormatModifierPropertiesEXT const *>( &rhs ) )
45323     {}
45324 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45325 
45326     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45327 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT45328     ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45329     {
45330       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const *>( &rhs );
45331       return *this;
45332     }
45333 
45334 
operator VkImageDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT45335     operator VkImageDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
45336     {
45337       return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT*>( this );
45338     }
45339 
operator VkImageDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT45340     operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
45341     {
45342       return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( this );
45343     }
45344 
45345 
45346 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45347     auto operator<=>( ImageDrmFormatModifierPropertiesEXT const& ) const = default;
45348 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT45349     bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45350     {
45351       return ( sType == rhs.sType )
45352           && ( pNext == rhs.pNext )
45353           && ( drmFormatModifier == rhs.drmFormatModifier );
45354     }
45355 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT45356     bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45357     {
45358       return !operator==( rhs );
45359     }
45360 #endif
45361 
45362 
45363 
45364   public:
45365     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
45366     void* pNext = {};
45367     uint64_t drmFormatModifier = {};
45368 
45369   };
45370   static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
45371   static_assert( std::is_standard_layout<ImageDrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
45372 
45373   template <>
45374   struct CppType<StructureType, StructureType::eImageDrmFormatModifierPropertiesEXT>
45375   {
45376     using Type = ImageDrmFormatModifierPropertiesEXT;
45377   };
45378 
45379   struct ImageMemoryRequirementsInfo2
45380   {
45381     static const bool allowDuplicate = false;
45382     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2;
45383 
45384 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245385     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT
45386     : image( image_ )
45387     {}
45388 
45389     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45390 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245391     ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
45392       : ImageMemoryRequirementsInfo2( *reinterpret_cast<ImageMemoryRequirementsInfo2 const *>( &rhs ) )
45393     {}
45394 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45395 
45396     VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45397 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245398     ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
45399     {
45400       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const *>( &rhs );
45401       return *this;
45402     }
45403 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245404     ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45405     {
45406       pNext = pNext_;
45407       return *this;
45408     }
45409 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245410     ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
45411     {
45412       image = image_;
45413       return *this;
45414     }
45415 
45416 
operator VkImageMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245417     operator VkImageMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
45418     {
45419       return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( this );
45420     }
45421 
operator VkImageMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245422     operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
45423     {
45424       return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>( this );
45425     }
45426 
45427 
45428 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45429     auto operator<=>( ImageMemoryRequirementsInfo2 const& ) const = default;
45430 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245431     bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
45432     {
45433       return ( sType == rhs.sType )
45434           && ( pNext == rhs.pNext )
45435           && ( image == rhs.image );
45436     }
45437 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo245438     bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
45439     {
45440       return !operator==( rhs );
45441     }
45442 #endif
45443 
45444 
45445 
45446   public:
45447     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
45448     const void* pNext = {};
45449     VULKAN_HPP_NAMESPACE::Image image = {};
45450 
45451   };
45452   static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
45453   static_assert( std::is_standard_layout<ImageMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
45454 
45455   template <>
45456   struct CppType<StructureType, StructureType::eImageMemoryRequirementsInfo2>
45457   {
45458     using Type = ImageMemoryRequirementsInfo2;
45459   };
45460   using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
45461 
45462   struct SparseImageFormatProperties
45463   {
45464 
45465 
45466 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties45467     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
45468     : aspectMask( aspectMask_ ), imageGranularity( imageGranularity_ ), flags( flags_ )
45469     {}
45470 
45471     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45472 
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties45473     SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
45474       : SparseImageFormatProperties( *reinterpret_cast<SparseImageFormatProperties const *>( &rhs ) )
45475     {}
45476 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45477 
45478     VULKAN_HPP_CONSTEXPR_14 SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45479 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties45480     SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
45481     {
45482       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const *>( &rhs );
45483       return *this;
45484     }
45485 
45486 
operator VkSparseImageFormatProperties const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties45487     operator VkSparseImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
45488     {
45489       return *reinterpret_cast<const VkSparseImageFormatProperties*>( this );
45490     }
45491 
operator VkSparseImageFormatProperties&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties45492     operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
45493     {
45494       return *reinterpret_cast<VkSparseImageFormatProperties*>( this );
45495     }
45496 
45497 
45498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45499     auto operator<=>( SparseImageFormatProperties const& ) const = default;
45500 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties45501     bool operator==( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
45502     {
45503       return ( aspectMask == rhs.aspectMask )
45504           && ( imageGranularity == rhs.imageGranularity )
45505           && ( flags == rhs.flags );
45506     }
45507 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties45508     bool operator!=( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
45509     {
45510       return !operator==( rhs );
45511     }
45512 #endif
45513 
45514 
45515 
45516   public:
45517     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
45518     VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {};
45519     VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {};
45520 
45521   };
45522   static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" );
45523   static_assert( std::is_standard_layout<SparseImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
45524 
45525   struct SparseImageMemoryRequirements
45526   {
45527 
45528 
45529 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements45530     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
45531     : formatProperties( formatProperties_ ), imageMipTailFirstLod( imageMipTailFirstLod_ ), imageMipTailSize( imageMipTailSize_ ), imageMipTailOffset( imageMipTailOffset_ ), imageMipTailStride( imageMipTailStride_ )
45532     {}
45533 
45534     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45535 
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements45536     SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
45537       : SparseImageMemoryRequirements( *reinterpret_cast<SparseImageMemoryRequirements const *>( &rhs ) )
45538     {}
45539 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45540 
45541     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45542 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements45543     SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
45544     {
45545       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const *>( &rhs );
45546       return *this;
45547     }
45548 
45549 
operator VkSparseImageMemoryRequirements const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements45550     operator VkSparseImageMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
45551     {
45552       return *reinterpret_cast<const VkSparseImageMemoryRequirements*>( this );
45553     }
45554 
operator VkSparseImageMemoryRequirements&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements45555     operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
45556     {
45557       return *reinterpret_cast<VkSparseImageMemoryRequirements*>( this );
45558     }
45559 
45560 
45561 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45562     auto operator<=>( SparseImageMemoryRequirements const& ) const = default;
45563 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements45564     bool operator==( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
45565     {
45566       return ( formatProperties == rhs.formatProperties )
45567           && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod )
45568           && ( imageMipTailSize == rhs.imageMipTailSize )
45569           && ( imageMipTailOffset == rhs.imageMipTailOffset )
45570           && ( imageMipTailStride == rhs.imageMipTailStride );
45571     }
45572 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements45573     bool operator!=( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
45574     {
45575       return !operator==( rhs );
45576     }
45577 #endif
45578 
45579 
45580 
45581   public:
45582     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {};
45583     uint32_t imageMipTailFirstLod = {};
45584     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {};
45585     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {};
45586     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {};
45587 
45588   };
45589   static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" );
45590   static_assert( std::is_standard_layout<SparseImageMemoryRequirements>::value, "struct wrapper is not a standard layout!" );
45591 
45592   struct ImageSparseMemoryRequirementsInfo2
45593   {
45594     static const bool allowDuplicate = false;
45595     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2;
45596 
45597 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245598     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT
45599     : image( image_ )
45600     {}
45601 
45602     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45603 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245604     ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
45605       : ImageSparseMemoryRequirementsInfo2( *reinterpret_cast<ImageSparseMemoryRequirementsInfo2 const *>( &rhs ) )
45606     {}
45607 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45608 
45609     VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45610 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245611     ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
45612     {
45613       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const *>( &rhs );
45614       return *this;
45615     }
45616 
setPNextVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245617     ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45618     {
45619       pNext = pNext_;
45620       return *this;
45621     }
45622 
setImageVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245623     ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
45624     {
45625       image = image_;
45626       return *this;
45627     }
45628 
45629 
operator VkImageSparseMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245630     operator VkImageSparseMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
45631     {
45632       return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( this );
45633     }
45634 
operator VkImageSparseMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245635     operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
45636     {
45637       return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>( this );
45638     }
45639 
45640 
45641 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45642     auto operator<=>( ImageSparseMemoryRequirementsInfo2 const& ) const = default;
45643 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245644     bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
45645     {
45646       return ( sType == rhs.sType )
45647           && ( pNext == rhs.pNext )
45648           && ( image == rhs.image );
45649     }
45650 
operator !=VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo245651     bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
45652     {
45653       return !operator==( rhs );
45654     }
45655 #endif
45656 
45657 
45658 
45659   public:
45660     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
45661     const void* pNext = {};
45662     VULKAN_HPP_NAMESPACE::Image image = {};
45663 
45664   };
45665   static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
45666   static_assert( std::is_standard_layout<ImageSparseMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
45667 
45668   template <>
45669   struct CppType<StructureType, StructureType::eImageSparseMemoryRequirementsInfo2>
45670   {
45671     using Type = ImageSparseMemoryRequirementsInfo2;
45672   };
45673   using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
45674 
45675   struct SparseImageMemoryRequirements2
45676   {
45677     static const bool allowDuplicate = false;
45678     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2;
45679 
45680 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements245681     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2(VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT
45682     : memoryRequirements( memoryRequirements_ )
45683     {}
45684 
45685     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45686 
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements245687     SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
45688       : SparseImageMemoryRequirements2( *reinterpret_cast<SparseImageMemoryRequirements2 const *>( &rhs ) )
45689     {}
45690 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45691 
45692     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45693 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements245694     SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
45695     {
45696       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const *>( &rhs );
45697       return *this;
45698     }
45699 
45700 
operator VkSparseImageMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements245701     operator VkSparseImageMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
45702     {
45703       return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>( this );
45704     }
45705 
operator VkSparseImageMemoryRequirements2&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements245706     operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
45707     {
45708       return *reinterpret_cast<VkSparseImageMemoryRequirements2*>( this );
45709     }
45710 
45711 
45712 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45713     auto operator<=>( SparseImageMemoryRequirements2 const& ) const = default;
45714 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements245715     bool operator==( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
45716     {
45717       return ( sType == rhs.sType )
45718           && ( pNext == rhs.pNext )
45719           && ( memoryRequirements == rhs.memoryRequirements );
45720     }
45721 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements245722     bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
45723     {
45724       return !operator==( rhs );
45725     }
45726 #endif
45727 
45728 
45729 
45730   public:
45731     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
45732     void* pNext = {};
45733     VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {};
45734 
45735   };
45736   static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" );
45737   static_assert( std::is_standard_layout<SparseImageMemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
45738 
45739   template <>
45740   struct CppType<StructureType, StructureType::eSparseImageMemoryRequirements2>
45741   {
45742     using Type = SparseImageMemoryRequirements2;
45743   };
45744   using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
45745 
45746   struct SubresourceLayout
45747   {
45748 
45749 
45750 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout45751     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
45752     : offset( offset_ ), size( size_ ), rowPitch( rowPitch_ ), arrayPitch( arrayPitch_ ), depthPitch( depthPitch_ )
45753     {}
45754 
45755     VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45756 
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout45757     SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
45758       : SubresourceLayout( *reinterpret_cast<SubresourceLayout const *>( &rhs ) )
45759     {}
45760 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45761 
45762     VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45763 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout45764     SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
45765     {
45766       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout const *>( &rhs );
45767       return *this;
45768     }
45769 
45770 
operator VkSubresourceLayout const&VULKAN_HPP_NAMESPACE::SubresourceLayout45771     operator VkSubresourceLayout const&() const VULKAN_HPP_NOEXCEPT
45772     {
45773       return *reinterpret_cast<const VkSubresourceLayout*>( this );
45774     }
45775 
operator VkSubresourceLayout&VULKAN_HPP_NAMESPACE::SubresourceLayout45776     operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
45777     {
45778       return *reinterpret_cast<VkSubresourceLayout*>( this );
45779     }
45780 
45781 
45782 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45783     auto operator<=>( SubresourceLayout const& ) const = default;
45784 #else
operator ==VULKAN_HPP_NAMESPACE::SubresourceLayout45785     bool operator==( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
45786     {
45787       return ( offset == rhs.offset )
45788           && ( size == rhs.size )
45789           && ( rowPitch == rhs.rowPitch )
45790           && ( arrayPitch == rhs.arrayPitch )
45791           && ( depthPitch == rhs.depthPitch );
45792     }
45793 
operator !=VULKAN_HPP_NAMESPACE::SubresourceLayout45794     bool operator!=( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
45795     {
45796       return !operator==( rhs );
45797     }
45798 #endif
45799 
45800 
45801 
45802   public:
45803     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
45804     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
45805     VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {};
45806     VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {};
45807     VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {};
45808 
45809   };
45810   static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" );
45811   static_assert( std::is_standard_layout<SubresourceLayout>::value, "struct wrapper is not a standard layout!" );
45812 
45813   struct ImageViewAddressPropertiesNVX
45814   {
45815     static const bool allowDuplicate = false;
45816     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX;
45817 
45818 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45819     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
45820     : deviceAddress( deviceAddress_ ), size( size_ )
45821     {}
45822 
45823     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45824 
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45825     ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45826       : ImageViewAddressPropertiesNVX( *reinterpret_cast<ImageViewAddressPropertiesNVX const *>( &rhs ) )
45827     {}
45828 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45829 
45830     VULKAN_HPP_CONSTEXPR_14 ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45831 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45832     ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45833     {
45834       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const *>( &rhs );
45835       return *this;
45836     }
45837 
45838 
operator VkImageViewAddressPropertiesNVX const&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45839     operator VkImageViewAddressPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
45840     {
45841       return *reinterpret_cast<const VkImageViewAddressPropertiesNVX*>( this );
45842     }
45843 
operator VkImageViewAddressPropertiesNVX&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45844     operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
45845     {
45846       return *reinterpret_cast<VkImageViewAddressPropertiesNVX*>( this );
45847     }
45848 
45849 
45850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45851     auto operator<=>( ImageViewAddressPropertiesNVX const& ) const = default;
45852 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45853     bool operator==( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
45854     {
45855       return ( sType == rhs.sType )
45856           && ( pNext == rhs.pNext )
45857           && ( deviceAddress == rhs.deviceAddress )
45858           && ( size == rhs.size );
45859     }
45860 
operator !=VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX45861     bool operator!=( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
45862     {
45863       return !operator==( rhs );
45864     }
45865 #endif
45866 
45867 
45868 
45869   public:
45870     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX;
45871     void* pNext = {};
45872     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
45873     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
45874 
45875   };
45876   static_assert( sizeof( ImageViewAddressPropertiesNVX ) == sizeof( VkImageViewAddressPropertiesNVX ), "struct and wrapper have different size!" );
45877   static_assert( std::is_standard_layout<ImageViewAddressPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
45878 
45879   template <>
45880   struct CppType<StructureType, StructureType::eImageViewAddressPropertiesNVX>
45881   {
45882     using Type = ImageViewAddressPropertiesNVX;
45883   };
45884 
45885   struct ImageViewHandleInfoNVX
45886   {
45887     static const bool allowDuplicate = false;
45888     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX;
45889 
45890 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45891     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
45892     : imageView( imageView_ ), descriptorType( descriptorType_ ), sampler( sampler_ )
45893     {}
45894 
45895     VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45896 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45897     ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45898       : ImageViewHandleInfoNVX( *reinterpret_cast<ImageViewHandleInfoNVX const *>( &rhs ) )
45899     {}
45900 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45901 
45902     VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45903 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45904     ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
45905     {
45906       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const *>( &rhs );
45907       return *this;
45908     }
45909 
setPNextVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45910     ImageViewHandleInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45911     {
45912       pNext = pNext_;
45913       return *this;
45914     }
45915 
setImageViewVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45916     ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
45917     {
45918       imageView = imageView_;
45919       return *this;
45920     }
45921 
setDescriptorTypeVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45922     ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
45923     {
45924       descriptorType = descriptorType_;
45925       return *this;
45926     }
45927 
setSamplerVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45928     ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
45929     {
45930       sampler = sampler_;
45931       return *this;
45932     }
45933 
45934 
operator VkImageViewHandleInfoNVX const&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45935     operator VkImageViewHandleInfoNVX const&() const VULKAN_HPP_NOEXCEPT
45936     {
45937       return *reinterpret_cast<const VkImageViewHandleInfoNVX*>( this );
45938     }
45939 
operator VkImageViewHandleInfoNVX&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45940     operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
45941     {
45942       return *reinterpret_cast<VkImageViewHandleInfoNVX*>( this );
45943     }
45944 
45945 
45946 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45947     auto operator<=>( ImageViewHandleInfoNVX const& ) const = default;
45948 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45949     bool operator==( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
45950     {
45951       return ( sType == rhs.sType )
45952           && ( pNext == rhs.pNext )
45953           && ( imageView == rhs.imageView )
45954           && ( descriptorType == rhs.descriptorType )
45955           && ( sampler == rhs.sampler );
45956     }
45957 
operator !=VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX45958     bool operator!=( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
45959     {
45960       return !operator==( rhs );
45961     }
45962 #endif
45963 
45964 
45965 
45966   public:
45967     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX;
45968     const void* pNext = {};
45969     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
45970     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
45971     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
45972 
45973   };
45974   static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" );
45975   static_assert( std::is_standard_layout<ImageViewHandleInfoNVX>::value, "struct wrapper is not a standard layout!" );
45976 
45977   template <>
45978   struct CppType<StructureType, StructureType::eImageViewHandleInfoNVX>
45979   {
45980     using Type = ImageViewHandleInfoNVX;
45981   };
45982 
45983 #ifdef VK_USE_PLATFORM_ANDROID_KHR
45984   struct MemoryGetAndroidHardwareBufferInfoANDROID
45985   {
45986     static const bool allowDuplicate = false;
45987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
45988 
45989 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45990     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT
45991     : memory( memory_ )
45992     {}
45993 
45994     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45995 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45996     MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
45997       : MemoryGetAndroidHardwareBufferInfoANDROID( *reinterpret_cast<MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs ) )
45998     {}
45999 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46000 
46001     VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46002 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID46003     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
46004     {
46005       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs );
46006       return *this;
46007     }
46008 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID46009     MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46010     {
46011       pNext = pNext_;
46012       return *this;
46013     }
46014 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID46015     MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
46016     {
46017       memory = memory_;
46018       return *this;
46019     }
46020 
46021 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID46022     operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
46023     {
46024       return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
46025     }
46026 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID46027     operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
46028     {
46029       return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
46030     }
46031 
46032 
46033 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46034     auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const& ) const = default;
46035 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID46036     bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
46037     {
46038       return ( sType == rhs.sType )
46039           && ( pNext == rhs.pNext )
46040           && ( memory == rhs.memory );
46041     }
46042 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID46043     bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
46044     {
46045       return !operator==( rhs );
46046     }
46047 #endif
46048 
46049 
46050 
46051   public:
46052     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
46053     const void* pNext = {};
46054     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
46055 
46056   };
46057   static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
46058   static_assert( std::is_standard_layout<MemoryGetAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
46059 
46060   template <>
46061   struct CppType<StructureType, StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID>
46062   {
46063     using Type = MemoryGetAndroidHardwareBufferInfoANDROID;
46064   };
46065 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
46066 
46067   struct MemoryGetFdInfoKHR
46068   {
46069     static const bool allowDuplicate = false;
46070     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR;
46071 
46072 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46073     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
46074     : memory( memory_ ), handleType( handleType_ )
46075     {}
46076 
46077     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46078 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46079     MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46080       : MemoryGetFdInfoKHR( *reinterpret_cast<MemoryGetFdInfoKHR const *>( &rhs ) )
46081     {}
46082 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46083 
46084     VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46085 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46086     MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46087     {
46088       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const *>( &rhs );
46089       return *this;
46090     }
46091 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46092     MemoryGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46093     {
46094       pNext = pNext_;
46095       return *this;
46096     }
46097 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46098     MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
46099     {
46100       memory = memory_;
46101       return *this;
46102     }
46103 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46104     MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46105     {
46106       handleType = handleType_;
46107       return *this;
46108     }
46109 
46110 
operator VkMemoryGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46111     operator VkMemoryGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46112     {
46113       return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>( this );
46114     }
46115 
operator VkMemoryGetFdInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46116     operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46117     {
46118       return *reinterpret_cast<VkMemoryGetFdInfoKHR*>( this );
46119     }
46120 
46121 
46122 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46123     auto operator<=>( MemoryGetFdInfoKHR const& ) const = default;
46124 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46125     bool operator==( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46126     {
46127       return ( sType == rhs.sType )
46128           && ( pNext == rhs.pNext )
46129           && ( memory == rhs.memory )
46130           && ( handleType == rhs.handleType );
46131     }
46132 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR46133     bool operator!=( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46134     {
46135       return !operator==( rhs );
46136     }
46137 #endif
46138 
46139 
46140 
46141   public:
46142     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
46143     const void* pNext = {};
46144     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
46145     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
46146 
46147   };
46148   static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" );
46149   static_assert( std::is_standard_layout<MemoryGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46150 
46151   template <>
46152   struct CppType<StructureType, StructureType::eMemoryGetFdInfoKHR>
46153   {
46154     using Type = MemoryGetFdInfoKHR;
46155   };
46156 
46157   struct MemoryFdPropertiesKHR
46158   {
46159     static const bool allowDuplicate = false;
46160     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR;
46161 
46162 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR46163     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
46164     : memoryTypeBits( memoryTypeBits_ )
46165     {}
46166 
46167     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46168 
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR46169     MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46170       : MemoryFdPropertiesKHR( *reinterpret_cast<MemoryFdPropertiesKHR const *>( &rhs ) )
46171     {}
46172 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46173 
46174     VULKAN_HPP_CONSTEXPR_14 MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46175 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR46176     MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46177     {
46178       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const *>( &rhs );
46179       return *this;
46180     }
46181 
46182 
operator VkMemoryFdPropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR46183     operator VkMemoryFdPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
46184     {
46185       return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>( this );
46186     }
46187 
operator VkMemoryFdPropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR46188     operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
46189     {
46190       return *reinterpret_cast<VkMemoryFdPropertiesKHR*>( this );
46191     }
46192 
46193 
46194 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46195     auto operator<=>( MemoryFdPropertiesKHR const& ) const = default;
46196 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR46197     bool operator==( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46198     {
46199       return ( sType == rhs.sType )
46200           && ( pNext == rhs.pNext )
46201           && ( memoryTypeBits == rhs.memoryTypeBits );
46202     }
46203 
operator !=VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR46204     bool operator!=( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46205     {
46206       return !operator==( rhs );
46207     }
46208 #endif
46209 
46210 
46211 
46212   public:
46213     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
46214     void* pNext = {};
46215     uint32_t memoryTypeBits = {};
46216 
46217   };
46218   static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" );
46219   static_assert( std::is_standard_layout<MemoryFdPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
46220 
46221   template <>
46222   struct CppType<StructureType, StructureType::eMemoryFdPropertiesKHR>
46223   {
46224     using Type = MemoryFdPropertiesKHR;
46225   };
46226 
46227   struct MemoryHostPointerPropertiesEXT
46228   {
46229     static const bool allowDuplicate = false;
46230     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT;
46231 
46232 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT46233     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
46234     : memoryTypeBits( memoryTypeBits_ )
46235     {}
46236 
46237     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46238 
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT46239     MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46240       : MemoryHostPointerPropertiesEXT( *reinterpret_cast<MemoryHostPointerPropertiesEXT const *>( &rhs ) )
46241     {}
46242 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46243 
46244     VULKAN_HPP_CONSTEXPR_14 MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46245 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT46246     MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46247     {
46248       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const *>( &rhs );
46249       return *this;
46250     }
46251 
46252 
operator VkMemoryHostPointerPropertiesEXT const&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT46253     operator VkMemoryHostPointerPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
46254     {
46255       return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>( this );
46256     }
46257 
operator VkMemoryHostPointerPropertiesEXT&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT46258     operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
46259     {
46260       return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( this );
46261     }
46262 
46263 
46264 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46265     auto operator<=>( MemoryHostPointerPropertiesEXT const& ) const = default;
46266 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT46267     bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
46268     {
46269       return ( sType == rhs.sType )
46270           && ( pNext == rhs.pNext )
46271           && ( memoryTypeBits == rhs.memoryTypeBits );
46272     }
46273 
operator !=VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT46274     bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
46275     {
46276       return !operator==( rhs );
46277     }
46278 #endif
46279 
46280 
46281 
46282   public:
46283     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
46284     void* pNext = {};
46285     uint32_t memoryTypeBits = {};
46286 
46287   };
46288   static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" );
46289   static_assert( std::is_standard_layout<MemoryHostPointerPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
46290 
46291   template <>
46292   struct CppType<StructureType, StructureType::eMemoryHostPointerPropertiesEXT>
46293   {
46294     using Type = MemoryHostPointerPropertiesEXT;
46295   };
46296 
46297 #ifdef VK_USE_PLATFORM_WIN32_KHR
46298   struct MemoryGetWin32HandleInfoKHR
46299   {
46300     static const bool allowDuplicate = false;
46301     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR;
46302 
46303 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46304     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
46305     : memory( memory_ ), handleType( handleType_ )
46306     {}
46307 
46308     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46309 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46310     MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46311       : MemoryGetWin32HandleInfoKHR( *reinterpret_cast<MemoryGetWin32HandleInfoKHR const *>( &rhs ) )
46312     {}
46313 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46314 
46315     VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46316 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46317     MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46318     {
46319       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const *>( &rhs );
46320       return *this;
46321     }
46322 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46323     MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46324     {
46325       pNext = pNext_;
46326       return *this;
46327     }
46328 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46329     MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
46330     {
46331       memory = memory_;
46332       return *this;
46333     }
46334 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46335     MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46336     {
46337       handleType = handleType_;
46338       return *this;
46339     }
46340 
46341 
operator VkMemoryGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46342     operator VkMemoryGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46343     {
46344       return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( this );
46345     }
46346 
operator VkMemoryGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46347     operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46348     {
46349       return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>( this );
46350     }
46351 
46352 
46353 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46354     auto operator<=>( MemoryGetWin32HandleInfoKHR const& ) const = default;
46355 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46356     bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46357     {
46358       return ( sType == rhs.sType )
46359           && ( pNext == rhs.pNext )
46360           && ( memory == rhs.memory )
46361           && ( handleType == rhs.handleType );
46362     }
46363 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR46364     bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46365     {
46366       return !operator==( rhs );
46367     }
46368 #endif
46369 
46370 
46371 
46372   public:
46373     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
46374     const void* pNext = {};
46375     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
46376     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
46377 
46378   };
46379   static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46380   static_assert( std::is_standard_layout<MemoryGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46381 
46382   template <>
46383   struct CppType<StructureType, StructureType::eMemoryGetWin32HandleInfoKHR>
46384   {
46385     using Type = MemoryGetWin32HandleInfoKHR;
46386   };
46387 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46388 
46389 #ifdef VK_USE_PLATFORM_WIN32_KHR
46390   struct MemoryWin32HandlePropertiesKHR
46391   {
46392     static const bool allowDuplicate = false;
46393     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR;
46394 
46395 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR46396     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
46397     : memoryTypeBits( memoryTypeBits_ )
46398     {}
46399 
46400     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46401 
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR46402     MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46403       : MemoryWin32HandlePropertiesKHR( *reinterpret_cast<MemoryWin32HandlePropertiesKHR const *>( &rhs ) )
46404     {}
46405 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46406 
46407     VULKAN_HPP_CONSTEXPR_14 MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46408 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR46409     MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46410     {
46411       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const *>( &rhs );
46412       return *this;
46413     }
46414 
46415 
operator VkMemoryWin32HandlePropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR46416     operator VkMemoryWin32HandlePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
46417     {
46418       return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>( this );
46419     }
46420 
operator VkMemoryWin32HandlePropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR46421     operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
46422     {
46423       return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( this );
46424     }
46425 
46426 
46427 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46428     auto operator<=>( MemoryWin32HandlePropertiesKHR const& ) const = default;
46429 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR46430     bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46431     {
46432       return ( sType == rhs.sType )
46433           && ( pNext == rhs.pNext )
46434           && ( memoryTypeBits == rhs.memoryTypeBits );
46435     }
46436 
operator !=VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR46437     bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46438     {
46439       return !operator==( rhs );
46440     }
46441 #endif
46442 
46443 
46444 
46445   public:
46446     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
46447     void* pNext = {};
46448     uint32_t memoryTypeBits = {};
46449 
46450   };
46451   static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" );
46452   static_assert( std::is_standard_layout<MemoryWin32HandlePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
46453 
46454   template <>
46455   struct CppType<StructureType, StructureType::eMemoryWin32HandlePropertiesKHR>
46456   {
46457     using Type = MemoryWin32HandlePropertiesKHR;
46458   };
46459 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46460 
46461   struct PastPresentationTimingGOOGLE
46462   {
46463 
46464 
46465 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE46466     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}, uint64_t actualPresentTime_ = {}, uint64_t earliestPresentTime_ = {}, uint64_t presentMargin_ = {}) VULKAN_HPP_NOEXCEPT
46467     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ), actualPresentTime( actualPresentTime_ ), earliestPresentTime( earliestPresentTime_ ), presentMargin( presentMargin_ )
46468     {}
46469 
46470     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46471 
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE46472     PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
46473       : PastPresentationTimingGOOGLE( *reinterpret_cast<PastPresentationTimingGOOGLE const *>( &rhs ) )
46474     {}
46475 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46476 
46477     VULKAN_HPP_CONSTEXPR_14 PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46478 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE46479     PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
46480     {
46481       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const *>( &rhs );
46482       return *this;
46483     }
46484 
46485 
operator VkPastPresentationTimingGOOGLE const&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE46486     operator VkPastPresentationTimingGOOGLE const&() const VULKAN_HPP_NOEXCEPT
46487     {
46488       return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>( this );
46489     }
46490 
operator VkPastPresentationTimingGOOGLE&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE46491     operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
46492     {
46493       return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>( this );
46494     }
46495 
46496 
46497 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46498     auto operator<=>( PastPresentationTimingGOOGLE const& ) const = default;
46499 #else
operator ==VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE46500     bool operator==( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
46501     {
46502       return ( presentID == rhs.presentID )
46503           && ( desiredPresentTime == rhs.desiredPresentTime )
46504           && ( actualPresentTime == rhs.actualPresentTime )
46505           && ( earliestPresentTime == rhs.earliestPresentTime )
46506           && ( presentMargin == rhs.presentMargin );
46507     }
46508 
operator !=VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE46509     bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
46510     {
46511       return !operator==( rhs );
46512     }
46513 #endif
46514 
46515 
46516 
46517   public:
46518     uint32_t presentID = {};
46519     uint64_t desiredPresentTime = {};
46520     uint64_t actualPresentTime = {};
46521     uint64_t earliestPresentTime = {};
46522     uint64_t presentMargin = {};
46523 
46524   };
46525   static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" );
46526   static_assert( std::is_standard_layout<PastPresentationTimingGOOGLE>::value, "struct wrapper is not a standard layout!" );
46527 
46528   union PerformanceValueDataINTEL
46529   {
PerformanceValueDataINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)46530     PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const& rhs ) VULKAN_HPP_NOEXCEPT
46531     {
46532       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
46533     }
46534 
PerformanceValueDataINTEL(uint32_t value32_={} )46535     PerformanceValueDataINTEL( uint32_t value32_ = {} )
46536       : value32( value32_ )
46537     {}
46538 
PerformanceValueDataINTEL(uint64_t value64_)46539     PerformanceValueDataINTEL( uint64_t value64_ )
46540       : value64( value64_ )
46541     {}
46542 
PerformanceValueDataINTEL(float valueFloat_)46543     PerformanceValueDataINTEL( float valueFloat_ )
46544       : valueFloat( valueFloat_ )
46545     {}
46546 
PerformanceValueDataINTEL(const char * valueString_)46547     PerformanceValueDataINTEL( const char* valueString_ )
46548       : valueString( valueString_ )
46549     {}
46550 
setValue32(uint32_t value32_)46551     PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
46552     {
46553       value32 = value32_;
46554       return *this;
46555     }
46556 
setValue64(uint64_t value64_)46557     PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT
46558     {
46559       value64 = value64_;
46560       return *this;
46561     }
46562 
setValueFloat(float valueFloat_)46563     PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT
46564     {
46565       valueFloat = valueFloat_;
46566       return *this;
46567     }
46568 
setValueBool(VULKAN_HPP_NAMESPACE::Bool32 valueBool_)46569     PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT
46570     {
46571       valueBool = valueBool_;
46572       return *this;
46573     }
46574 
setValueString(const char * valueString_)46575     PerformanceValueDataINTEL & setValueString( const char* valueString_ ) VULKAN_HPP_NOEXCEPT
46576     {
46577       valueString = valueString_;
46578       return *this;
46579     }
46580 
operator =(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)46581     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46582     {
46583       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
46584       return *this;
46585     }
46586 
operator VkPerformanceValueDataINTEL const&() const46587     operator VkPerformanceValueDataINTEL const&() const
46588     {
46589       return *reinterpret_cast<const VkPerformanceValueDataINTEL*>(this);
46590     }
46591 
operator VkPerformanceValueDataINTEL&()46592     operator VkPerformanceValueDataINTEL &()
46593     {
46594       return *reinterpret_cast<VkPerformanceValueDataINTEL*>(this);
46595     }
46596 
46597 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
46598     uint32_t value32;
46599     uint64_t value64;
46600     float valueFloat;
46601     VULKAN_HPP_NAMESPACE::Bool32 valueBool;
46602     const char* valueString;
46603 #else
46604     uint32_t value32;
46605     uint64_t value64;
46606     float valueFloat;
46607     VkBool32 valueBool;
46608     const char* valueString;
46609 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
46610   };
46611 
46612   struct PerformanceValueINTEL
46613   {
46614 
46615 
46616 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL46617     PerformanceValueINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {}) VULKAN_HPP_NOEXCEPT
46618     : type( type_ ), data( data_ )
46619     {}
46620 
46621     PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46622 
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL46623     PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46624       : PerformanceValueINTEL( *reinterpret_cast<PerformanceValueINTEL const *>( &rhs ) )
46625     {}
46626 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46627 
46628     PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46629 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL46630     PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46631     {
46632       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL const *>( &rhs );
46633       return *this;
46634     }
46635 
setTypeVULKAN_HPP_NAMESPACE::PerformanceValueINTEL46636     PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
46637     {
46638       type = type_;
46639       return *this;
46640     }
46641 
setDataVULKAN_HPP_NAMESPACE::PerformanceValueINTEL46642     PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT
46643     {
46644       data = data_;
46645       return *this;
46646     }
46647 
46648 
operator VkPerformanceValueINTEL const&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL46649     operator VkPerformanceValueINTEL const&() const VULKAN_HPP_NOEXCEPT
46650     {
46651       return *reinterpret_cast<const VkPerformanceValueINTEL*>( this );
46652     }
46653 
operator VkPerformanceValueINTEL&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL46654     operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
46655     {
46656       return *reinterpret_cast<VkPerformanceValueINTEL*>( this );
46657     }
46658 
46659 
46660 
46661 
46662   public:
46663     VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32;
46664     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {};
46665 
46666   };
46667   static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" );
46668   static_assert( std::is_standard_layout<PerformanceValueINTEL>::value, "struct wrapper is not a standard layout!" );
46669 
46670   struct PipelineExecutableInfoKHR
46671   {
46672     static const bool allowDuplicate = false;
46673     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR;
46674 
46675 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46676     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, uint32_t executableIndex_ = {}) VULKAN_HPP_NOEXCEPT
46677     : pipeline( pipeline_ ), executableIndex( executableIndex_ )
46678     {}
46679 
46680     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46681 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46682     PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46683       : PipelineExecutableInfoKHR( *reinterpret_cast<PipelineExecutableInfoKHR const *>( &rhs ) )
46684     {}
46685 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46686 
46687     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46688 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46689     PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46690     {
46691       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const *>( &rhs );
46692       return *this;
46693     }
46694 
setPNextVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46695     PipelineExecutableInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46696     {
46697       pNext = pNext_;
46698       return *this;
46699     }
46700 
setPipelineVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46701     PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
46702     {
46703       pipeline = pipeline_;
46704       return *this;
46705     }
46706 
setExecutableIndexVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46707     PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT
46708     {
46709       executableIndex = executableIndex_;
46710       return *this;
46711     }
46712 
46713 
operator VkPipelineExecutableInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46714     operator VkPipelineExecutableInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46715     {
46716       return *reinterpret_cast<const VkPipelineExecutableInfoKHR*>( this );
46717     }
46718 
operator VkPipelineExecutableInfoKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46719     operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
46720     {
46721       return *reinterpret_cast<VkPipelineExecutableInfoKHR*>( this );
46722     }
46723 
46724 
46725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46726     auto operator<=>( PipelineExecutableInfoKHR const& ) const = default;
46727 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46728     bool operator==( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46729     {
46730       return ( sType == rhs.sType )
46731           && ( pNext == rhs.pNext )
46732           && ( pipeline == rhs.pipeline )
46733           && ( executableIndex == rhs.executableIndex );
46734     }
46735 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR46736     bool operator!=( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46737     {
46738       return !operator==( rhs );
46739     }
46740 #endif
46741 
46742 
46743 
46744   public:
46745     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
46746     const void* pNext = {};
46747     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
46748     uint32_t executableIndex = {};
46749 
46750   };
46751   static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" );
46752   static_assert( std::is_standard_layout<PipelineExecutableInfoKHR>::value, "struct wrapper is not a standard layout!" );
46753 
46754   template <>
46755   struct CppType<StructureType, StructureType::ePipelineExecutableInfoKHR>
46756   {
46757     using Type = PipelineExecutableInfoKHR;
46758   };
46759 
46760   struct PipelineExecutableInternalRepresentationKHR
46761   {
46762     static const bool allowDuplicate = false;
46763     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR;
46764 
46765 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR46766     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
46767     : name( name_ ), description( description_ ), isText( isText_ ), dataSize( dataSize_ ), pData( pData_ )
46768     {}
46769 
46770     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46771 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR46772     PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46773       : PipelineExecutableInternalRepresentationKHR( *reinterpret_cast<PipelineExecutableInternalRepresentationKHR const *>( &rhs ) )
46774     {}
46775 
46776 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
46777     template <typename T>
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR46778     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_ )
46779     : name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
46780     {}
46781 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
46782 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46783 
46784     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46785 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR46786     PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46787     {
46788       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const *>( &rhs );
46789       return *this;
46790     }
46791 
46792 
operator VkPipelineExecutableInternalRepresentationKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR46793     operator VkPipelineExecutableInternalRepresentationKHR const&() const VULKAN_HPP_NOEXCEPT
46794     {
46795       return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR*>( this );
46796     }
46797 
operator VkPipelineExecutableInternalRepresentationKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR46798     operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
46799     {
46800       return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( this );
46801     }
46802 
46803 
46804 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46805     auto operator<=>( PipelineExecutableInternalRepresentationKHR const& ) const = default;
46806 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR46807     bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46808     {
46809       return ( sType == rhs.sType )
46810           && ( pNext == rhs.pNext )
46811           && ( name == rhs.name )
46812           && ( description == rhs.description )
46813           && ( isText == rhs.isText )
46814           && ( dataSize == rhs.dataSize )
46815           && ( pData == rhs.pData );
46816     }
46817 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR46818     bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46819     {
46820       return !operator==( rhs );
46821     }
46822 #endif
46823 
46824 
46825 
46826   public:
46827     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
46828     void* pNext = {};
46829     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
46830     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
46831     VULKAN_HPP_NAMESPACE::Bool32 isText = {};
46832     size_t dataSize = {};
46833     void* pData = {};
46834 
46835   };
46836   static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" );
46837   static_assert( std::is_standard_layout<PipelineExecutableInternalRepresentationKHR>::value, "struct wrapper is not a standard layout!" );
46838 
46839   template <>
46840   struct CppType<StructureType, StructureType::ePipelineExecutableInternalRepresentationKHR>
46841   {
46842     using Type = PipelineExecutableInternalRepresentationKHR;
46843   };
46844 
46845   struct PipelineInfoKHR
46846   {
46847     static const bool allowDuplicate = false;
46848     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR;
46849 
46850 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR46851     VULKAN_HPP_CONSTEXPR PipelineInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}) VULKAN_HPP_NOEXCEPT
46852     : pipeline( pipeline_ )
46853     {}
46854 
46855     VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46856 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR46857     PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46858       : PipelineInfoKHR( *reinterpret_cast<PipelineInfoKHR const *>( &rhs ) )
46859     {}
46860 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46861 
46862     VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46863 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR46864     PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46865     {
46866       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInfoKHR const *>( &rhs );
46867       return *this;
46868     }
46869 
setPNextVULKAN_HPP_NAMESPACE::PipelineInfoKHR46870     PipelineInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46871     {
46872       pNext = pNext_;
46873       return *this;
46874     }
46875 
setPipelineVULKAN_HPP_NAMESPACE::PipelineInfoKHR46876     PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
46877     {
46878       pipeline = pipeline_;
46879       return *this;
46880     }
46881 
46882 
operator VkPipelineInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineInfoKHR46883     operator VkPipelineInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46884     {
46885       return *reinterpret_cast<const VkPipelineInfoKHR*>( this );
46886     }
46887 
operator VkPipelineInfoKHR&VULKAN_HPP_NAMESPACE::PipelineInfoKHR46888     operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
46889     {
46890       return *reinterpret_cast<VkPipelineInfoKHR*>( this );
46891     }
46892 
46893 
46894 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46895     auto operator<=>( PipelineInfoKHR const& ) const = default;
46896 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInfoKHR46897     bool operator==( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46898     {
46899       return ( sType == rhs.sType )
46900           && ( pNext == rhs.pNext )
46901           && ( pipeline == rhs.pipeline );
46902     }
46903 
operator !=VULKAN_HPP_NAMESPACE::PipelineInfoKHR46904     bool operator!=( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46905     {
46906       return !operator==( rhs );
46907     }
46908 #endif
46909 
46910 
46911 
46912   public:
46913     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR;
46914     const void* pNext = {};
46915     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
46916 
46917   };
46918   static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" );
46919   static_assert( std::is_standard_layout<PipelineInfoKHR>::value, "struct wrapper is not a standard layout!" );
46920 
46921   template <>
46922   struct CppType<StructureType, StructureType::ePipelineInfoKHR>
46923   {
46924     using Type = PipelineInfoKHR;
46925   };
46926 
46927   struct PipelineExecutablePropertiesKHR
46928   {
46929     static const bool allowDuplicate = false;
46930     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR;
46931 
46932 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46933     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
46934     : stages( stages_ ), name( name_ ), description( description_ ), subgroupSize( subgroupSize_ )
46935     {}
46936 
46937     VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46938 
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46939     PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46940       : PipelineExecutablePropertiesKHR( *reinterpret_cast<PipelineExecutablePropertiesKHR const *>( &rhs ) )
46941     {}
46942 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46943 
46944     VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46945 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46946     PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46947     {
46948       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const *>( &rhs );
46949       return *this;
46950     }
46951 
46952 
operator VkPipelineExecutablePropertiesKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46953     operator VkPipelineExecutablePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
46954     {
46955       return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR*>( this );
46956     }
46957 
operator VkPipelineExecutablePropertiesKHR&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46958     operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
46959     {
46960       return *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( this );
46961     }
46962 
46963 
46964 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46965     auto operator<=>( PipelineExecutablePropertiesKHR const& ) const = default;
46966 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46967     bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46968     {
46969       return ( sType == rhs.sType )
46970           && ( pNext == rhs.pNext )
46971           && ( stages == rhs.stages )
46972           && ( name == rhs.name )
46973           && ( description == rhs.description )
46974           && ( subgroupSize == rhs.subgroupSize );
46975     }
46976 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46977     bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46978     {
46979       return !operator==( rhs );
46980     }
46981 #endif
46982 
46983 
46984 
46985   public:
46986     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
46987     void* pNext = {};
46988     VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {};
46989     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
46990     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
46991     uint32_t subgroupSize = {};
46992 
46993   };
46994   static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" );
46995   static_assert( std::is_standard_layout<PipelineExecutablePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
46996 
46997   template <>
46998   struct CppType<StructureType, StructureType::ePipelineExecutablePropertiesKHR>
46999   {
47000     using Type = PipelineExecutablePropertiesKHR;
47001   };
47002 
47003   union PipelineExecutableStatisticValueKHR
47004   {
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)47005     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const& rhs ) VULKAN_HPP_NOEXCEPT
47006     {
47007       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
47008     }
47009 
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::Bool32 b32_={} )47010     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} )
47011       : b32( b32_ )
47012     {}
47013 
PipelineExecutableStatisticValueKHR(int64_t i64_)47014     PipelineExecutableStatisticValueKHR( int64_t i64_ )
47015       : i64( i64_ )
47016     {}
47017 
PipelineExecutableStatisticValueKHR(uint64_t u64_)47018     PipelineExecutableStatisticValueKHR( uint64_t u64_ )
47019       : u64( u64_ )
47020     {}
47021 
PipelineExecutableStatisticValueKHR(double f64_)47022     PipelineExecutableStatisticValueKHR( double f64_ )
47023       : f64( f64_ )
47024     {}
47025 
setB32(VULKAN_HPP_NAMESPACE::Bool32 b32_)47026     PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
47027     {
47028       b32 = b32_;
47029       return *this;
47030     }
47031 
setI64(int64_t i64_)47032     PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT
47033     {
47034       i64 = i64_;
47035       return *this;
47036     }
47037 
setU64(uint64_t u64_)47038     PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT
47039     {
47040       u64 = u64_;
47041       return *this;
47042     }
47043 
setF64(double f64_)47044     PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT
47045     {
47046       f64 = f64_;
47047       return *this;
47048     }
47049 
operator =(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)47050     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47051     {
47052       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
47053       return *this;
47054     }
47055 
operator VkPipelineExecutableStatisticValueKHR const&() const47056     operator VkPipelineExecutableStatisticValueKHR const&() const
47057     {
47058       return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR*>(this);
47059     }
47060 
operator VkPipelineExecutableStatisticValueKHR&()47061     operator VkPipelineExecutableStatisticValueKHR &()
47062     {
47063       return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR*>(this);
47064     }
47065 
47066 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
47067     VULKAN_HPP_NAMESPACE::Bool32 b32;
47068     int64_t i64;
47069     uint64_t u64;
47070     double f64;
47071 #else
47072     VkBool32 b32;
47073     int64_t i64;
47074     uint64_t u64;
47075     double f64;
47076 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
47077   };
47078 
47079   struct PipelineExecutableStatisticKHR
47080   {
47081     static const bool allowDuplicate = false;
47082     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR;
47083 
47084 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR47085     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
47086     : name( name_ ), description( description_ ), format( format_ ), value( value_ )
47087     {}
47088 
47089     PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47090 
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR47091     PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47092       : PipelineExecutableStatisticKHR( *reinterpret_cast<PipelineExecutableStatisticKHR const *>( &rhs ) )
47093     {}
47094 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47095 
47096     PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47097 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR47098     PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47099     {
47100       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const *>( &rhs );
47101       return *this;
47102     }
47103 
47104 
operator VkPipelineExecutableStatisticKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR47105     operator VkPipelineExecutableStatisticKHR const&() const VULKAN_HPP_NOEXCEPT
47106     {
47107       return *reinterpret_cast<const VkPipelineExecutableStatisticKHR*>( this );
47108     }
47109 
operator VkPipelineExecutableStatisticKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR47110     operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
47111     {
47112       return *reinterpret_cast<VkPipelineExecutableStatisticKHR*>( this );
47113     }
47114 
47115 
47116 
47117 
47118   public:
47119     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
47120     void* pNext = {};
47121     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
47122     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
47123     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32;
47124     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {};
47125 
47126   };
47127   static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" );
47128   static_assert( std::is_standard_layout<PipelineExecutableStatisticKHR>::value, "struct wrapper is not a standard layout!" );
47129 
47130   template <>
47131   struct CppType<StructureType, StructureType::ePipelineExecutableStatisticKHR>
47132   {
47133     using Type = PipelineExecutableStatisticKHR;
47134   };
47135 
47136   struct RefreshCycleDurationGOOGLE
47137   {
47138 
47139 
47140 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE47141     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE(uint64_t refreshDuration_ = {}) VULKAN_HPP_NOEXCEPT
47142     : refreshDuration( refreshDuration_ )
47143     {}
47144 
47145     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47146 
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE47147     RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
47148       : RefreshCycleDurationGOOGLE( *reinterpret_cast<RefreshCycleDurationGOOGLE const *>( &rhs ) )
47149     {}
47150 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47151 
47152     VULKAN_HPP_CONSTEXPR_14 RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47153 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE47154     RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
47155     {
47156       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const *>( &rhs );
47157       return *this;
47158     }
47159 
47160 
operator VkRefreshCycleDurationGOOGLE const&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE47161     operator VkRefreshCycleDurationGOOGLE const&() const VULKAN_HPP_NOEXCEPT
47162     {
47163       return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>( this );
47164     }
47165 
operator VkRefreshCycleDurationGOOGLE&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE47166     operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
47167     {
47168       return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( this );
47169     }
47170 
47171 
47172 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47173     auto operator<=>( RefreshCycleDurationGOOGLE const& ) const = default;
47174 #else
operator ==VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE47175     bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
47176     {
47177       return ( refreshDuration == rhs.refreshDuration );
47178     }
47179 
operator !=VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE47180     bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
47181     {
47182       return !operator==( rhs );
47183     }
47184 #endif
47185 
47186 
47187 
47188   public:
47189     uint64_t refreshDuration = {};
47190 
47191   };
47192   static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" );
47193   static_assert( std::is_standard_layout<RefreshCycleDurationGOOGLE>::value, "struct wrapper is not a standard layout!" );
47194 
47195   struct SemaphoreGetFdInfoKHR
47196   {
47197     static const bool allowDuplicate = false;
47198     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR;
47199 
47200 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47201     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
47202     : semaphore( semaphore_ ), handleType( handleType_ )
47203     {}
47204 
47205     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47206 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47207     SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47208       : SemaphoreGetFdInfoKHR( *reinterpret_cast<SemaphoreGetFdInfoKHR const *>( &rhs ) )
47209     {}
47210 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47211 
47212     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47213 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47214     SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47215     {
47216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const *>( &rhs );
47217       return *this;
47218     }
47219 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47220     SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47221     {
47222       pNext = pNext_;
47223       return *this;
47224     }
47225 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47226     SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
47227     {
47228       semaphore = semaphore_;
47229       return *this;
47230     }
47231 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47232     SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47233     {
47234       handleType = handleType_;
47235       return *this;
47236     }
47237 
47238 
operator VkSemaphoreGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47239     operator VkSemaphoreGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
47240     {
47241       return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( this );
47242     }
47243 
operator VkSemaphoreGetFdInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47244     operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
47245     {
47246       return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>( this );
47247     }
47248 
47249 
47250 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47251     auto operator<=>( SemaphoreGetFdInfoKHR const& ) const = default;
47252 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47253     bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47254     {
47255       return ( sType == rhs.sType )
47256           && ( pNext == rhs.pNext )
47257           && ( semaphore == rhs.semaphore )
47258           && ( handleType == rhs.handleType );
47259     }
47260 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR47261     bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47262     {
47263       return !operator==( rhs );
47264     }
47265 #endif
47266 
47267 
47268 
47269   public:
47270     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
47271     const void* pNext = {};
47272     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
47273     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
47274 
47275   };
47276   static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" );
47277   static_assert( std::is_standard_layout<SemaphoreGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
47278 
47279   template <>
47280   struct CppType<StructureType, StructureType::eSemaphoreGetFdInfoKHR>
47281   {
47282     using Type = SemaphoreGetFdInfoKHR;
47283   };
47284 
47285 #ifdef VK_USE_PLATFORM_WIN32_KHR
47286   struct SemaphoreGetWin32HandleInfoKHR
47287   {
47288     static const bool allowDuplicate = false;
47289     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
47290 
47291 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47292     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
47293     : semaphore( semaphore_ ), handleType( handleType_ )
47294     {}
47295 
47296     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47297 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47298     SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47299       : SemaphoreGetWin32HandleInfoKHR( *reinterpret_cast<SemaphoreGetWin32HandleInfoKHR const *>( &rhs ) )
47300     {}
47301 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47302 
47303     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47304 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47305     SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47306     {
47307       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const *>( &rhs );
47308       return *this;
47309     }
47310 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47311     SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47312     {
47313       pNext = pNext_;
47314       return *this;
47315     }
47316 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47317     SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
47318     {
47319       semaphore = semaphore_;
47320       return *this;
47321     }
47322 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47323     SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47324     {
47325       handleType = handleType_;
47326       return *this;
47327     }
47328 
47329 
operator VkSemaphoreGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47330     operator VkSemaphoreGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
47331     {
47332       return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( this );
47333     }
47334 
operator VkSemaphoreGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47335     operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
47336     {
47337       return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>( this );
47338     }
47339 
47340 
47341 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47342     auto operator<=>( SemaphoreGetWin32HandleInfoKHR const& ) const = default;
47343 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47344     bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47345     {
47346       return ( sType == rhs.sType )
47347           && ( pNext == rhs.pNext )
47348           && ( semaphore == rhs.semaphore )
47349           && ( handleType == rhs.handleType );
47350     }
47351 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR47352     bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47353     {
47354       return !operator==( rhs );
47355     }
47356 #endif
47357 
47358 
47359 
47360   public:
47361     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
47362     const void* pNext = {};
47363     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
47364     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
47365 
47366   };
47367   static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
47368   static_assert( std::is_standard_layout<SemaphoreGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
47369 
47370   template <>
47371   struct CppType<StructureType, StructureType::eSemaphoreGetWin32HandleInfoKHR>
47372   {
47373     using Type = SemaphoreGetWin32HandleInfoKHR;
47374   };
47375 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
47376 
47377   struct ImportFenceFdInfoKHR
47378   {
47379     static const bool allowDuplicate = false;
47380     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR;
47381 
47382 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47383     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
47384     : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
47385     {}
47386 
47387     VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47388 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47389     ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47390       : ImportFenceFdInfoKHR( *reinterpret_cast<ImportFenceFdInfoKHR const *>( &rhs ) )
47391     {}
47392 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47393 
47394     VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47395 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47396     ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47397     {
47398       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const *>( &rhs );
47399       return *this;
47400     }
47401 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47402     ImportFenceFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47403     {
47404       pNext = pNext_;
47405       return *this;
47406     }
47407 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47408     ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
47409     {
47410       fence = fence_;
47411       return *this;
47412     }
47413 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47414     ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
47415     {
47416       flags = flags_;
47417       return *this;
47418     }
47419 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47420     ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47421     {
47422       handleType = handleType_;
47423       return *this;
47424     }
47425 
setFdVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47426     ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
47427     {
47428       fd = fd_;
47429       return *this;
47430     }
47431 
47432 
operator VkImportFenceFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47433     operator VkImportFenceFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
47434     {
47435       return *reinterpret_cast<const VkImportFenceFdInfoKHR*>( this );
47436     }
47437 
operator VkImportFenceFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47438     operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
47439     {
47440       return *reinterpret_cast<VkImportFenceFdInfoKHR*>( this );
47441     }
47442 
47443 
47444 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47445     auto operator<=>( ImportFenceFdInfoKHR const& ) const = default;
47446 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47447     bool operator==( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47448     {
47449       return ( sType == rhs.sType )
47450           && ( pNext == rhs.pNext )
47451           && ( fence == rhs.fence )
47452           && ( flags == rhs.flags )
47453           && ( handleType == rhs.handleType )
47454           && ( fd == rhs.fd );
47455     }
47456 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR47457     bool operator!=( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47458     {
47459       return !operator==( rhs );
47460     }
47461 #endif
47462 
47463 
47464 
47465   public:
47466     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR;
47467     const void* pNext = {};
47468     VULKAN_HPP_NAMESPACE::Fence fence = {};
47469     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
47470     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
47471     int fd = {};
47472 
47473   };
47474   static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" );
47475   static_assert( std::is_standard_layout<ImportFenceFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
47476 
47477   template <>
47478   struct CppType<StructureType, StructureType::eImportFenceFdInfoKHR>
47479   {
47480     using Type = ImportFenceFdInfoKHR;
47481   };
47482 
47483 #ifdef VK_USE_PLATFORM_WIN32_KHR
47484   struct ImportFenceWin32HandleInfoKHR
47485   {
47486     static const bool allowDuplicate = false;
47487     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR;
47488 
47489 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47490     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
47491     : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
47492     {}
47493 
47494     VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47495 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47496     ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47497       : ImportFenceWin32HandleInfoKHR( *reinterpret_cast<ImportFenceWin32HandleInfoKHR const *>( &rhs ) )
47498     {}
47499 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47500 
47501     VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47502 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47503     ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47504     {
47505       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const *>( &rhs );
47506       return *this;
47507     }
47508 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47509     ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47510     {
47511       pNext = pNext_;
47512       return *this;
47513     }
47514 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47515     ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
47516     {
47517       fence = fence_;
47518       return *this;
47519     }
47520 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47521     ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
47522     {
47523       flags = flags_;
47524       return *this;
47525     }
47526 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47527     ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47528     {
47529       handleType = handleType_;
47530       return *this;
47531     }
47532 
setHandleVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47533     ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
47534     {
47535       handle = handle_;
47536       return *this;
47537     }
47538 
setNameVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47539     ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
47540     {
47541       name = name_;
47542       return *this;
47543     }
47544 
47545 
operator VkImportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47546     operator VkImportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
47547     {
47548       return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( this );
47549     }
47550 
operator VkImportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47551     operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
47552     {
47553       return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>( this );
47554     }
47555 
47556 
47557 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47558     auto operator<=>( ImportFenceWin32HandleInfoKHR const& ) const = default;
47559 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47560     bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47561     {
47562       return ( sType == rhs.sType )
47563           && ( pNext == rhs.pNext )
47564           && ( fence == rhs.fence )
47565           && ( flags == rhs.flags )
47566           && ( handleType == rhs.handleType )
47567           && ( handle == rhs.handle )
47568           && ( name == rhs.name );
47569     }
47570 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR47571     bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47572     {
47573       return !operator==( rhs );
47574     }
47575 #endif
47576 
47577 
47578 
47579   public:
47580     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
47581     const void* pNext = {};
47582     VULKAN_HPP_NAMESPACE::Fence fence = {};
47583     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
47584     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
47585     HANDLE handle = {};
47586     LPCWSTR name = {};
47587 
47588   };
47589   static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
47590   static_assert( std::is_standard_layout<ImportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
47591 
47592   template <>
47593   struct CppType<StructureType, StructureType::eImportFenceWin32HandleInfoKHR>
47594   {
47595     using Type = ImportFenceWin32HandleInfoKHR;
47596   };
47597 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
47598 
47599   struct ImportSemaphoreFdInfoKHR
47600   {
47601     static const bool allowDuplicate = false;
47602     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR;
47603 
47604 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47605     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
47606     : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
47607     {}
47608 
47609     VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47610 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47611     ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47612       : ImportSemaphoreFdInfoKHR( *reinterpret_cast<ImportSemaphoreFdInfoKHR const *>( &rhs ) )
47613     {}
47614 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47615 
47616     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47617 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47618     ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47619     {
47620       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const *>( &rhs );
47621       return *this;
47622     }
47623 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47624     ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47625     {
47626       pNext = pNext_;
47627       return *this;
47628     }
47629 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47630     ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
47631     {
47632       semaphore = semaphore_;
47633       return *this;
47634     }
47635 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47636     ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
47637     {
47638       flags = flags_;
47639       return *this;
47640     }
47641 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47642     ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47643     {
47644       handleType = handleType_;
47645       return *this;
47646     }
47647 
setFdVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47648     ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
47649     {
47650       fd = fd_;
47651       return *this;
47652     }
47653 
47654 
operator VkImportSemaphoreFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47655     operator VkImportSemaphoreFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
47656     {
47657       return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( this );
47658     }
47659 
operator VkImportSemaphoreFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47660     operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
47661     {
47662       return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>( this );
47663     }
47664 
47665 
47666 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47667     auto operator<=>( ImportSemaphoreFdInfoKHR const& ) const = default;
47668 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47669     bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47670     {
47671       return ( sType == rhs.sType )
47672           && ( pNext == rhs.pNext )
47673           && ( semaphore == rhs.semaphore )
47674           && ( flags == rhs.flags )
47675           && ( handleType == rhs.handleType )
47676           && ( fd == rhs.fd );
47677     }
47678 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR47679     bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47680     {
47681       return !operator==( rhs );
47682     }
47683 #endif
47684 
47685 
47686 
47687   public:
47688     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
47689     const void* pNext = {};
47690     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
47691     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
47692     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
47693     int fd = {};
47694 
47695   };
47696   static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" );
47697   static_assert( std::is_standard_layout<ImportSemaphoreFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
47698 
47699   template <>
47700   struct CppType<StructureType, StructureType::eImportSemaphoreFdInfoKHR>
47701   {
47702     using Type = ImportSemaphoreFdInfoKHR;
47703   };
47704 
47705 #ifdef VK_USE_PLATFORM_WIN32_KHR
47706   struct ImportSemaphoreWin32HandleInfoKHR
47707   {
47708     static const bool allowDuplicate = false;
47709     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
47710 
47711 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47712     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
47713     : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
47714     {}
47715 
47716     VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47717 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47718     ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47719       : ImportSemaphoreWin32HandleInfoKHR( *reinterpret_cast<ImportSemaphoreWin32HandleInfoKHR const *>( &rhs ) )
47720     {}
47721 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47722 
47723     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47724 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47725     ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47726     {
47727       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const *>( &rhs );
47728       return *this;
47729     }
47730 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47731     ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47732     {
47733       pNext = pNext_;
47734       return *this;
47735     }
47736 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47737     ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
47738     {
47739       semaphore = semaphore_;
47740       return *this;
47741     }
47742 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47743     ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
47744     {
47745       flags = flags_;
47746       return *this;
47747     }
47748 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47749     ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47750     {
47751       handleType = handleType_;
47752       return *this;
47753     }
47754 
setHandleVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47755     ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
47756     {
47757       handle = handle_;
47758       return *this;
47759     }
47760 
setNameVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47761     ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
47762     {
47763       name = name_;
47764       return *this;
47765     }
47766 
47767 
operator VkImportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47768     operator VkImportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
47769     {
47770       return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( this );
47771     }
47772 
operator VkImportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47773     operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
47774     {
47775       return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>( this );
47776     }
47777 
47778 
47779 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47780     auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const& ) const = default;
47781 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47782     bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47783     {
47784       return ( sType == rhs.sType )
47785           && ( pNext == rhs.pNext )
47786           && ( semaphore == rhs.semaphore )
47787           && ( flags == rhs.flags )
47788           && ( handleType == rhs.handleType )
47789           && ( handle == rhs.handle )
47790           && ( name == rhs.name );
47791     }
47792 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR47793     bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
47794     {
47795       return !operator==( rhs );
47796     }
47797 #endif
47798 
47799 
47800 
47801   public:
47802     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
47803     const void* pNext = {};
47804     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
47805     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
47806     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
47807     HANDLE handle = {};
47808     LPCWSTR name = {};
47809 
47810   };
47811   static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
47812   static_assert( std::is_standard_layout<ImportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
47813 
47814   template <>
47815   struct CppType<StructureType, StructureType::eImportSemaphoreWin32HandleInfoKHR>
47816   {
47817     using Type = ImportSemaphoreWin32HandleInfoKHR;
47818   };
47819 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
47820 
47821   struct InitializePerformanceApiInfoINTEL
47822   {
47823     static const bool allowDuplicate = false;
47824     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL;
47825 
47826 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47827     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL(void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
47828     : pUserData( pUserData_ )
47829     {}
47830 
47831     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47832 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47833     InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
47834       : InitializePerformanceApiInfoINTEL( *reinterpret_cast<InitializePerformanceApiInfoINTEL const *>( &rhs ) )
47835     {}
47836 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47837 
47838     VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47839 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47840     InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
47841     {
47842       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const *>( &rhs );
47843       return *this;
47844     }
47845 
setPNextVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47846     InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47847     {
47848       pNext = pNext_;
47849       return *this;
47850     }
47851 
setPUserDataVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47852     InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
47853     {
47854       pUserData = pUserData_;
47855       return *this;
47856     }
47857 
47858 
operator VkInitializePerformanceApiInfoINTEL const&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47859     operator VkInitializePerformanceApiInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
47860     {
47861       return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( this );
47862     }
47863 
operator VkInitializePerformanceApiInfoINTEL&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47864     operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
47865     {
47866       return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>( this );
47867     }
47868 
47869 
47870 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47871     auto operator<=>( InitializePerformanceApiInfoINTEL const& ) const = default;
47872 #else
operator ==VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47873     bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
47874     {
47875       return ( sType == rhs.sType )
47876           && ( pNext == rhs.pNext )
47877           && ( pUserData == rhs.pUserData );
47878     }
47879 
operator !=VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47880     bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
47881     {
47882       return !operator==( rhs );
47883     }
47884 #endif
47885 
47886 
47887 
47888   public:
47889     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
47890     const void* pNext = {};
47891     void* pUserData = {};
47892 
47893   };
47894   static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" );
47895   static_assert( std::is_standard_layout<InitializePerformanceApiInfoINTEL>::value, "struct wrapper is not a standard layout!" );
47896 
47897   template <>
47898   struct CppType<StructureType, StructureType::eInitializePerformanceApiInfoINTEL>
47899   {
47900     using Type = InitializePerformanceApiInfoINTEL;
47901   };
47902 
47903   struct DisplayEventInfoEXT
47904   {
47905     static const bool allowDuplicate = false;
47906     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT;
47907 
47908 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47909     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT(VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut) VULKAN_HPP_NOEXCEPT
47910     : displayEvent( displayEvent_ )
47911     {}
47912 
47913     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47914 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47915     DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47916       : DisplayEventInfoEXT( *reinterpret_cast<DisplayEventInfoEXT const *>( &rhs ) )
47917     {}
47918 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47919 
47920     VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47921 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47922     DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47923     {
47924       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const *>( &rhs );
47925       return *this;
47926     }
47927 
setPNextVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47928     DisplayEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47929     {
47930       pNext = pNext_;
47931       return *this;
47932     }
47933 
setDisplayEventVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47934     DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT
47935     {
47936       displayEvent = displayEvent_;
47937       return *this;
47938     }
47939 
47940 
operator VkDisplayEventInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47941     operator VkDisplayEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
47942     {
47943       return *reinterpret_cast<const VkDisplayEventInfoEXT*>( this );
47944     }
47945 
operator VkDisplayEventInfoEXT&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47946     operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT
47947     {
47948       return *reinterpret_cast<VkDisplayEventInfoEXT*>( this );
47949     }
47950 
47951 
47952 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47953     auto operator<=>( DisplayEventInfoEXT const& ) const = default;
47954 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47955     bool operator==( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47956     {
47957       return ( sType == rhs.sType )
47958           && ( pNext == rhs.pNext )
47959           && ( displayEvent == rhs.displayEvent );
47960     }
47961 
operator !=VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47962     bool operator!=( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47963     {
47964       return !operator==( rhs );
47965     }
47966 #endif
47967 
47968 
47969 
47970   public:
47971     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT;
47972     const void* pNext = {};
47973     VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut;
47974 
47975   };
47976   static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" );
47977   static_assert( std::is_standard_layout<DisplayEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
47978 
47979   template <>
47980   struct CppType<StructureType, StructureType::eDisplayEventInfoEXT>
47981   {
47982     using Type = DisplayEventInfoEXT;
47983   };
47984 
47985   struct XYColorEXT
47986   {
47987 
47988 
47989 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT47990     VULKAN_HPP_CONSTEXPR XYColorEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
47991     : x( x_ ), y( y_ )
47992     {}
47993 
47994     VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47995 
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT47996     XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47997       : XYColorEXT( *reinterpret_cast<XYColorEXT const *>( &rhs ) )
47998     {}
47999 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
48000 
48001     VULKAN_HPP_CONSTEXPR_14 XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48002 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT48003     XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48004     {
48005       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XYColorEXT const *>( &rhs );
48006       return *this;
48007     }
48008 
setXVULKAN_HPP_NAMESPACE::XYColorEXT48009     XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
48010     {
48011       x = x_;
48012       return *this;
48013     }
48014 
setYVULKAN_HPP_NAMESPACE::XYColorEXT48015     XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
48016     {
48017       y = y_;
48018       return *this;
48019     }
48020 
48021 
operator VkXYColorEXT const&VULKAN_HPP_NAMESPACE::XYColorEXT48022     operator VkXYColorEXT const&() const VULKAN_HPP_NOEXCEPT
48023     {
48024       return *reinterpret_cast<const VkXYColorEXT*>( this );
48025     }
48026 
operator VkXYColorEXT&VULKAN_HPP_NAMESPACE::XYColorEXT48027     operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT
48028     {
48029       return *reinterpret_cast<VkXYColorEXT*>( this );
48030     }
48031 
48032 
48033 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48034     auto operator<=>( XYColorEXT const& ) const = default;
48035 #else
operator ==VULKAN_HPP_NAMESPACE::XYColorEXT48036     bool operator==( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48037     {
48038       return ( x == rhs.x )
48039           && ( y == rhs.y );
48040     }
48041 
operator !=VULKAN_HPP_NAMESPACE::XYColorEXT48042     bool operator!=( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48043     {
48044       return !operator==( rhs );
48045     }
48046 #endif
48047 
48048 
48049 
48050   public:
48051     float x = {};
48052     float y = {};
48053 
48054   };
48055   static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" );
48056   static_assert( std::is_standard_layout<XYColorEXT>::value, "struct wrapper is not a standard layout!" );
48057 
48058   struct HdrMetadataEXT
48059   {
48060     static const bool allowDuplicate = false;
48061     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT;
48062 
48063 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT48064     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
48065     : displayPrimaryRed( displayPrimaryRed_ ), displayPrimaryGreen( displayPrimaryGreen_ ), displayPrimaryBlue( displayPrimaryBlue_ ), whitePoint( whitePoint_ ), maxLuminance( maxLuminance_ ), minLuminance( minLuminance_ ), maxContentLightLevel( maxContentLightLevel_ ), maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
48066     {}
48067 
48068     VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48069 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT48070     HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48071       : HdrMetadataEXT( *reinterpret_cast<HdrMetadataEXT const *>( &rhs ) )
48072     {}
48073 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
48074 
48075     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48076 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT48077     HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48078     {
48079       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HdrMetadataEXT const *>( &rhs );
48080       return *this;
48081     }
48082 
setPNextVULKAN_HPP_NAMESPACE::HdrMetadataEXT48083     HdrMetadataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
48084     {
48085       pNext = pNext_;
48086       return *this;
48087     }
48088 
setDisplayPrimaryRedVULKAN_HPP_NAMESPACE::HdrMetadataEXT48089     HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT
48090     {
48091       displayPrimaryRed = displayPrimaryRed_;
48092       return *this;
48093     }
48094 
setDisplayPrimaryGreenVULKAN_HPP_NAMESPACE::HdrMetadataEXT48095     HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT
48096     {
48097       displayPrimaryGreen = displayPrimaryGreen_;
48098       return *this;
48099     }
48100 
setDisplayPrimaryBlueVULKAN_HPP_NAMESPACE::HdrMetadataEXT48101     HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT
48102     {
48103       displayPrimaryBlue = displayPrimaryBlue_;
48104       return *this;
48105     }
48106 
setWhitePointVULKAN_HPP_NAMESPACE::HdrMetadataEXT48107     HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT
48108     {
48109       whitePoint = whitePoint_;
48110       return *this;
48111     }
48112 
setMaxLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT48113     HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT
48114     {
48115       maxLuminance = maxLuminance_;
48116       return *this;
48117     }
48118 
setMinLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT48119     HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT
48120     {
48121       minLuminance = minLuminance_;
48122       return *this;
48123     }
48124 
setMaxContentLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT48125     HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT
48126     {
48127       maxContentLightLevel = maxContentLightLevel_;
48128       return *this;
48129     }
48130 
setMaxFrameAverageLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT48131     HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT
48132     {
48133       maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
48134       return *this;
48135     }
48136 
48137 
operator VkHdrMetadataEXT const&VULKAN_HPP_NAMESPACE::HdrMetadataEXT48138     operator VkHdrMetadataEXT const&() const VULKAN_HPP_NOEXCEPT
48139     {
48140       return *reinterpret_cast<const VkHdrMetadataEXT*>( this );
48141     }
48142 
operator VkHdrMetadataEXT&VULKAN_HPP_NAMESPACE::HdrMetadataEXT48143     operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT
48144     {
48145       return *reinterpret_cast<VkHdrMetadataEXT*>( this );
48146     }
48147 
48148 
48149 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48150     auto operator<=>( HdrMetadataEXT const& ) const = default;
48151 #else
operator ==VULKAN_HPP_NAMESPACE::HdrMetadataEXT48152     bool operator==( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48153     {
48154       return ( sType == rhs.sType )
48155           && ( pNext == rhs.pNext )
48156           && ( displayPrimaryRed == rhs.displayPrimaryRed )
48157           && ( displayPrimaryGreen == rhs.displayPrimaryGreen )
48158           && ( displayPrimaryBlue == rhs.displayPrimaryBlue )
48159           && ( whitePoint == rhs.whitePoint )
48160           && ( maxLuminance == rhs.maxLuminance )
48161           && ( minLuminance == rhs.minLuminance )
48162           && ( maxContentLightLevel == rhs.maxContentLightLevel )
48163           && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
48164     }
48165 
operator !=VULKAN_HPP_NAMESPACE::HdrMetadataEXT48166     bool operator!=( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
48167     {
48168       return !operator==( rhs );
48169     }
48170 #endif
48171 
48172 
48173 
48174   public:
48175     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT;
48176     const void* pNext = {};
48177     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {};
48178     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {};
48179     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {};
48180     VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {};
48181     float maxLuminance = {};
48182     float minLuminance = {};
48183     float maxContentLightLevel = {};
48184     float maxFrameAverageLightLevel = {};
48185 
48186   };
48187   static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" );
48188   static_assert( std::is_standard_layout<HdrMetadataEXT>::value, "struct wrapper is not a standard layout!" );
48189 
48190   template <>
48191   struct CppType<StructureType, StructureType::eHdrMetadataEXT>
48192   {
48193     using Type = HdrMetadataEXT;
48194   };
48195 
48196   struct SemaphoreSignalInfo
48197   {
48198     static const bool allowDuplicate = false;
48199     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo;
48200 
48201 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48202     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}) VULKAN_HPP_NOEXCEPT
48203     : semaphore( semaphore_ ), value( value_ )
48204     {}
48205 
48206     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48207 
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48208     SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48209       : SemaphoreSignalInfo( *reinterpret_cast<SemaphoreSignalInfo const *>( &rhs ) )
48210     {}
48211 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
48212 
48213     VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48214 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48215     SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48216     {
48217       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const *>( &rhs );
48218       return *this;
48219     }
48220 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48221     SemaphoreSignalInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
48222     {
48223       pNext = pNext_;
48224       return *this;
48225     }
48226 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48227     SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
48228     {
48229       semaphore = semaphore_;
48230       return *this;
48231     }
48232 
setValueVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48233     SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
48234     {
48235       value = value_;
48236       return *this;
48237     }
48238 
48239 
operator VkSemaphoreSignalInfo const&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48240     operator VkSemaphoreSignalInfo const&() const VULKAN_HPP_NOEXCEPT
48241     {
48242       return *reinterpret_cast<const VkSemaphoreSignalInfo*>( this );
48243     }
48244 
operator VkSemaphoreSignalInfo&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48245     operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
48246     {
48247       return *reinterpret_cast<VkSemaphoreSignalInfo*>( this );
48248     }
48249 
48250 
48251 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48252     auto operator<=>( SemaphoreSignalInfo const& ) const = default;
48253 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48254     bool operator==( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
48255     {
48256       return ( sType == rhs.sType )
48257           && ( pNext == rhs.pNext )
48258           && ( semaphore == rhs.semaphore )
48259           && ( value == rhs.value );
48260     }
48261 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo48262     bool operator!=( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
48263     {
48264       return !operator==( rhs );
48265     }
48266 #endif
48267 
48268 
48269 
48270   public:
48271     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo;
48272     const void* pNext = {};
48273     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
48274     uint64_t value = {};
48275 
48276   };
48277   static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), "struct and wrapper have different size!" );
48278   static_assert( std::is_standard_layout<SemaphoreSignalInfo>::value, "struct wrapper is not a standard layout!" );
48279 
48280   template <>
48281   struct CppType<StructureType, StructureType::eSemaphoreSignalInfo>
48282   {
48283     using Type = SemaphoreSignalInfo;
48284   };
48285   using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
48286 
48287   struct SemaphoreWaitInfo
48288   {
48289     static const bool allowDuplicate = false;
48290     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo;
48291 
48292 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48293     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
48294     : flags( flags_ ), semaphoreCount( semaphoreCount_ ), pSemaphores( pSemaphores_ ), pValues( pValues_ )
48295     {}
48296 
48297     VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48298 
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48299     SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48300       : SemaphoreWaitInfo( *reinterpret_cast<SemaphoreWaitInfo const *>( &rhs ) )
48301     {}
48302 
48303 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48304     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_ = {} )
48305     : flags( flags_ ), semaphoreCount( static_cast<uint32_t>( semaphores_.size() ) ), pSemaphores( semaphores_.data() ), pValues( values_.data() )
48306     {
48307 #ifdef VULKAN_HPP_NO_EXCEPTIONS
48308       VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() );
48309 #else
48310       if ( semaphores_.size() != values_.size() )
48311       {
48312         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" );
48313       }
48314 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
48315     }
48316 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
48317 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
48318 
48319     VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48320 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48321     SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48322     {
48323       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const *>( &rhs );
48324       return *this;
48325     }
48326 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48327     SemaphoreWaitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
48328     {
48329       pNext = pNext_;
48330       return *this;
48331     }
48332 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48333     SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT
48334     {
48335       flags = flags_;
48336       return *this;
48337     }
48338 
setSemaphoreCountVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48339     SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT
48340     {
48341       semaphoreCount = semaphoreCount_;
48342       return *this;
48343     }
48344 
setPSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48345     SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ ) VULKAN_HPP_NOEXCEPT
48346     {
48347       pSemaphores = pSemaphores_;
48348       return *this;
48349     }
48350 
48351 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48352     SemaphoreWaitInfo & setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_ ) VULKAN_HPP_NOEXCEPT
48353     {
48354       semaphoreCount = static_cast<uint32_t>( semaphores_.size() );
48355       pSemaphores = semaphores_.data();
48356       return *this;
48357     }
48358 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
48359 
setPValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48360     SemaphoreWaitInfo & setPValues( const uint64_t* pValues_ ) VULKAN_HPP_NOEXCEPT
48361     {
48362       pValues = pValues_;
48363       return *this;
48364     }
48365 
48366 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48367     SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ ) VULKAN_HPP_NOEXCEPT
48368     {
48369       semaphoreCount = static_cast<uint32_t>( values_.size() );
48370       pValues = values_.data();
48371       return *this;
48372     }
48373 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
48374 
48375 
operator VkSemaphoreWaitInfo const&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48376     operator VkSemaphoreWaitInfo const&() const VULKAN_HPP_NOEXCEPT
48377     {
48378       return *reinterpret_cast<const VkSemaphoreWaitInfo*>( this );
48379     }
48380 
operator VkSemaphoreWaitInfo&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48381     operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
48382     {
48383       return *reinterpret_cast<VkSemaphoreWaitInfo*>( this );
48384     }
48385 
48386 
48387 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48388     auto operator<=>( SemaphoreWaitInfo const& ) const = default;
48389 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48390     bool operator==( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
48391     {
48392       return ( sType == rhs.sType )
48393           && ( pNext == rhs.pNext )
48394           && ( flags == rhs.flags )
48395           && ( semaphoreCount == rhs.semaphoreCount )
48396           && ( pSemaphores == rhs.pSemaphores )
48397           && ( pValues == rhs.pValues );
48398     }
48399 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo48400     bool operator!=( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
48401     {
48402       return !operator==( rhs );
48403     }
48404 #endif
48405 
48406 
48407 
48408   public:
48409     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo;
48410     const void* pNext = {};
48411     VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {};
48412     uint32_t semaphoreCount = {};
48413     const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores = {};
48414     const uint64_t* pValues = {};
48415 
48416   };
48417   static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), "struct and wrapper have different size!" );
48418   static_assert( std::is_standard_layout<SemaphoreWaitInfo>::value, "struct wrapper is not a standard layout!" );
48419 
48420   template <>
48421   struct CppType<StructureType, StructureType::eSemaphoreWaitInfo>
48422   {
48423     using Type = SemaphoreWaitInfo;
48424   };
48425   using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
48426 
48427 #ifndef VULKAN_HPP_NO_SMART_HANDLE
48428   class Device;
48429   template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48430   using UniqueAccelerationStructureKHR = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48431   template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureNV, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48432   using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48433   template <typename Dispatch> class UniqueHandleTraits<Buffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48434   using UniqueBuffer = UniqueHandle<Buffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48435   template <typename Dispatch> class UniqueHandleTraits<BufferView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48436   using UniqueBufferView = UniqueHandle<BufferView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48437   template <typename Dispatch> class UniqueHandleTraits<CommandBuffer, Dispatch> { public: using deleter = PoolFree<Device, CommandPool, Dispatch>; };
48438   using UniqueCommandBuffer = UniqueHandle<CommandBuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48439   template <typename Dispatch> class UniqueHandleTraits<CommandPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48440   using UniqueCommandPool = UniqueHandle<CommandPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48441   template <typename Dispatch> class UniqueHandleTraits<DeferredOperationKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48442   using UniqueDeferredOperationKHR = UniqueHandle<DeferredOperationKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48443   template <typename Dispatch> class UniqueHandleTraits<DescriptorPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48444   using UniqueDescriptorPool = UniqueHandle<DescriptorPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48445   template <typename Dispatch> class UniqueHandleTraits<DescriptorSet, Dispatch> { public: using deleter = PoolFree<Device, DescriptorPool, Dispatch>; };
48446   using UniqueDescriptorSet = UniqueHandle<DescriptorSet, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48447   template <typename Dispatch> class UniqueHandleTraits<DescriptorSetLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48448   using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48449   template <typename Dispatch> class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48450   using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48451   using UniqueDescriptorUpdateTemplateKHR = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48452   template <typename Dispatch> class UniqueHandleTraits<DeviceMemory, Dispatch> { public: using deleter = ObjectFree<Device, Dispatch>; };
48453   using UniqueDeviceMemory = UniqueHandle<DeviceMemory, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48454   template <typename Dispatch> class UniqueHandleTraits<Event, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48455   using UniqueEvent = UniqueHandle<Event, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48456   template <typename Dispatch> class UniqueHandleTraits<Fence, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48457   using UniqueFence = UniqueHandle<Fence, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48458   template <typename Dispatch> class UniqueHandleTraits<Framebuffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48459   using UniqueFramebuffer = UniqueHandle<Framebuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48460   template <typename Dispatch> class UniqueHandleTraits<Image, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48461   using UniqueImage = UniqueHandle<Image, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48462   template <typename Dispatch> class UniqueHandleTraits<ImageView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48463   using UniqueImageView = UniqueHandle<ImageView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48464   template <typename Dispatch> class UniqueHandleTraits<IndirectCommandsLayoutNV, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48465   using UniqueIndirectCommandsLayoutNV = UniqueHandle<IndirectCommandsLayoutNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48466   template <typename Dispatch> class UniqueHandleTraits<Pipeline, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48467   using UniquePipeline = UniqueHandle<Pipeline, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48468   template <typename Dispatch> class UniqueHandleTraits<PipelineCache, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48469   using UniquePipelineCache = UniqueHandle<PipelineCache, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48470   template <typename Dispatch> class UniqueHandleTraits<PipelineLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48471   using UniquePipelineLayout = UniqueHandle<PipelineLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48472   template <typename Dispatch> class UniqueHandleTraits<PrivateDataSlotEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48473   using UniquePrivateDataSlotEXT = UniqueHandle<PrivateDataSlotEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48474   template <typename Dispatch> class UniqueHandleTraits<QueryPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48475   using UniqueQueryPool = UniqueHandle<QueryPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48476   template <typename Dispatch> class UniqueHandleTraits<RenderPass, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48477   using UniqueRenderPass = UniqueHandle<RenderPass, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48478   template <typename Dispatch> class UniqueHandleTraits<Sampler, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48479   using UniqueSampler = UniqueHandle<Sampler, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48480   template <typename Dispatch> class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48481   using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48482   using UniqueSamplerYcbcrConversionKHR = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48483   template <typename Dispatch> class UniqueHandleTraits<Semaphore, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48484   using UniqueSemaphore = UniqueHandle<Semaphore, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48485   template <typename Dispatch> class UniqueHandleTraits<ShaderModule, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48486   using UniqueShaderModule = UniqueHandle<ShaderModule, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48487   template <typename Dispatch> class UniqueHandleTraits<SwapchainKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48488   using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48489   template <typename Dispatch> class UniqueHandleTraits<ValidationCacheEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
48490   using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
48491 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48492 
48493   class Device
48494   {
48495   public:
48496     using CType = VkDevice;
48497 
48498     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice;
48499     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
48500 
48501   public:
Device()48502     VULKAN_HPP_CONSTEXPR Device() VULKAN_HPP_NOEXCEPT
48503       : m_device(VK_NULL_HANDLE)
48504     {}
48505 
Device(std::nullptr_t)48506     VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
48507       : m_device(VK_NULL_HANDLE)
48508     {}
48509 
Device(VkDevice device)48510     VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT
48511       : m_device( device )
48512     {}
48513 
48514 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDevice device)48515     Device & operator=(VkDevice device) VULKAN_HPP_NOEXCEPT
48516     {
48517       m_device = device;
48518       return *this;
48519     }
48520 #endif
48521 
operator =(std::nullptr_t)48522     Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
48523     {
48524       m_device = VK_NULL_HANDLE;
48525       return *this;
48526     }
48527 
48528 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48529     auto operator<=>( Device const& ) const = default;
48530 #else
operator ==(Device const & rhs) const48531     bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT
48532     {
48533       return m_device == rhs.m_device;
48534     }
48535 
operator !=(Device const & rhs) const48536     bool operator!=(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
48537     {
48538       return m_device != rhs.m_device;
48539     }
48540 
operator <(Device const & rhs) const48541     bool operator<(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
48542     {
48543       return m_device < rhs.m_device;
48544     }
48545 #endif
48546 
48547 
48548 #ifdef VK_USE_PLATFORM_WIN32_KHR
48549 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48550     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48551     VULKAN_HPP_NODISCARD Result acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48552 #else
48553     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48554     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;
48555 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48556 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
48557 
48558 
48559 
48560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48561     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;
48562 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48563     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48564     VULKAN_HPP_NODISCARD ResultValue<uint32_t> acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48565 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48566 
48567 
48568     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48569     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;
48570 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48571     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48572     VULKAN_HPP_NODISCARD ResultValue<uint32_t> acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48573 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48574 
48575 
48576     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48577     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;
48578 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48579     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48580     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;
48581 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48582   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48583   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>>::type acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48584 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48585 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48586 
48587 
48588     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48589     VULKAN_HPP_NODISCARD Result acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48590 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48591     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48592     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48594 
48595 
48596     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48597     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;
48598 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48599     template <typename CommandBufferAllocator = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48600     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48601     template <typename CommandBufferAllocator = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CommandBufferAllocator, typename std::enable_if<std::is_same<typename B::value_type, CommandBuffer>::value, int>::type = 0>
48602     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48603 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48604     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename CommandBufferAllocator = std::allocator<UniqueHandle<CommandBuffer, Dispatch>>>
48605     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48606     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename CommandBufferAllocator = std::allocator<UniqueHandle<CommandBuffer, Dispatch>>, typename B = CommandBufferAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<CommandBuffer, Dispatch>>::value, int>::type = 0>
48607     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48608 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48609 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48610 
48611 
48612     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48613     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;
48614 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48615     template <typename DescriptorSetAllocator = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48616     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48617     template <typename DescriptorSetAllocator = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DescriptorSetAllocator, typename std::enable_if<std::is_same<typename B::value_type, DescriptorSet>::value, int>::type = 0>
48618     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48619 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48620     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename DescriptorSetAllocator = std::allocator<UniqueHandle<DescriptorSet, Dispatch>>>
48621     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48622     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename DescriptorSetAllocator = std::allocator<UniqueHandle<DescriptorSet, Dispatch>>, typename B = DescriptorSetAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<DescriptorSet, Dispatch>>::value, int>::type = 0>
48623     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48624 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48625 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48626 
48627 
48628     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48629     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;
48630 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48631     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48632     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;
48633 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48634   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48635   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48636 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48637 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48638 
48639 
48640     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48641     VULKAN_HPP_NODISCARD Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48642 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48643     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48644     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindAccelerationStructureMemoryNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48645 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48646 
48647 
48648 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48649     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48650     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;
48651 #else
48652     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48653     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;
48654 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48655 
48656 
48657 
48658     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48659     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;
48660 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48661     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48662     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;
48663 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48664 
48665     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48666     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;
48667 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48668     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48669     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;
48670 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48671 
48672 
48673 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48674     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48675     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;
48676 #else
48677     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48678     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;
48679 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48680 
48681 
48682 
48683     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48684     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;
48685 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48686     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48687     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;
48688 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48689 
48690     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48691     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;
48692 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48693     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48694     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;
48695 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48696 
48697 
48698     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48699     VULKAN_HPP_NODISCARD Result buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48701     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48702     Result buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const > const & pBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
48703 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48704 
48705 
48706 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48707     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48708     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;
48709 #else
48710     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48711     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;
48712 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48713 
48714 
48715 
48716     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48717     VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48719     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48720     VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48721 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48722 
48723 
48724     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48725     VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48726 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48727     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48728     VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48729 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48730 
48731 
48732     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48733     VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, 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 Result copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48737 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48738 
48739 
48740     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48741     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;
48742 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48743     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48744     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;
48745 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48746   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48747   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>>::type createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48748 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48749 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48750 
48751 
48752     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48753     VULKAN_HPP_NODISCARD Result createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48754 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48755     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48756     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;
48757 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48758   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48759   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>>::type createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48760 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48761 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48762 
48763 
48764     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48765     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;
48766 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48767     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48768     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;
48769 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48770   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48771   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48772 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48773 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48774 
48775 
48776     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48777     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;
48778 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48779     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48780     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;
48781 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48782   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48783   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48784 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48785 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48786 
48787 
48788     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48789     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;
48790 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48791     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48792     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;
48793 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48794   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48795   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48796 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48797 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48798 
48799 
48800     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48801     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;
48802 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48803     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48804     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48805     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
48806     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48807     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48808     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48809 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48810     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
48811     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48812     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
48813     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48815     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48816 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48817 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48818 
48819 
48820     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48821     VULKAN_HPP_NODISCARD Result createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48822 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48823     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48824     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;
48825 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48826   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48827   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>>::type createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48828 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48829 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48830 
48831 
48832     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48833     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;
48834 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48835     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48836     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;
48837 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48838   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48839   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48840 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48841 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48842 
48843 
48844     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48845     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;
48846 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48847     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48848     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;
48849 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48850   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48851   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48852 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48853 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48854 
48855 
48856     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48857     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;
48858 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48859     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48860     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;
48861 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48862   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48863   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48864 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48866 
48867     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48868     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;
48869 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48870     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48871     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;
48872 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48873   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48874   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48875 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48876 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48877 
48878 
48879     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48880     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;
48881 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48882     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48883     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;
48884 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48885   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48886   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Event, Dispatch>>::type createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48887 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48888 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48889 
48890 
48891     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48892     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;
48893 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48894     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48895     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;
48896 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48897   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48898   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48899 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48900 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48901 
48902 
48903     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48904     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;
48905 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48906     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48907     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;
48908 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48909   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48910   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48911 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48912 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48913 
48914 
48915     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48916     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;
48917 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48918     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48919     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48920     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
48921     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48922     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48923     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48924 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48925     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
48926     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48927     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
48928     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48929     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48930     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48931 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48933 
48934 
48935     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48936     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;
48937 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48938     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48939     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;
48940 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48941   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48942   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Image, Dispatch>>::type createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48943 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48944 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48945 
48946 
48947     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48948     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;
48949 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48950     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48951     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;
48952 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48953   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48954   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48955 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48956 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48957 
48958 
48959     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48960     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;
48961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48962     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48963     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;
48964 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48965   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48966   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>>::type createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48967 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48968 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48969 
48970 
48971     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48972     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;
48973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48974     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48975     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;
48976 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48977   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48978   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48979 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48981 
48982 
48983     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48984     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;
48985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48986     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48987     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;
48988 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48989   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48990   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48991 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48992 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48993 
48994 
48995     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48996     VULKAN_HPP_NODISCARD Result createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT* pPrivateDataSlot, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48997 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48998     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48999     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;
49000 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49001   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49002   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT, Dispatch>>::type createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49003 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49004 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49005 
49006 
49007     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49008     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;
49009 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49010     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49011     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;
49012 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49013   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49014   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49015 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49016 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49017 
49018 
49019     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49020     VULKAN_HPP_NODISCARD Result createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 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;
49021 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49022     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49023     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 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;
49024     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
49025     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49026     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49027     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49028 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49029     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
49030     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 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;
49031     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
49032     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49033     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49034     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49035 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49036 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49037 
49038 
49039     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49040     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;
49041 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49042     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49043     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49044     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
49045     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49046     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49047     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49048 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49049     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
49050     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49051     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
49052     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49053     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49054     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49055 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49057 
49058 
49059     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49060     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;
49061 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49062     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49063     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;
49064 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49065   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49066   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49067 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49068 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49069 
49070 
49071     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49072     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;
49073 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49074     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49075     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;
49076 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49077   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49078   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49079 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49081 
49082     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49083     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;
49084 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49085     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49086     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;
49087 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49088   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49089   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49090 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49091 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49092 
49093 
49094     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49095     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;
49096 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49097     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49098     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;
49099 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49100   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49101   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49102 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49103 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49104 
49105 
49106     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49107     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;
49108 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49109     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49110     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;
49111 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49112   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49113   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49114 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49116 
49117     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49118     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;
49119 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49120     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49121     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;
49122 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49123   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49124   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49125 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49126 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49127 
49128 
49129     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49130     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;
49131 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49132     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49133     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;
49134 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49135   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49136   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49137 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49139 
49140 
49141     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49142     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;
49143 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49144     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49145     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;
49146 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49147   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49148   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49149 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49150 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49151 
49152 
49153     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49154     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;
49155 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49156     template <typename SwapchainKHRAllocator = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49157     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<SwapchainKHR, SwapchainKHRAllocator>>::type createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49158     template <typename SwapchainKHRAllocator = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SwapchainKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, SwapchainKHR>::value, int>::type = 0>
49159     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<SwapchainKHR, SwapchainKHRAllocator>>::type createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49160     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49161     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<SwapchainKHR>::type createSharedSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49162 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49163     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename SwapchainKHRAllocator = std::allocator<UniqueHandle<SwapchainKHR, Dispatch>>>
49164     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49165     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename SwapchainKHRAllocator = std::allocator<UniqueHandle<SwapchainKHR, Dispatch>>, typename B = SwapchainKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<SwapchainKHR, Dispatch>>::value, int>::type = 0>
49166     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49167     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49168     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<SwapchainKHR, Dispatch>>::type createSharedSwapchainKHRUnique( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49169 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49170 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49171 
49172 
49173     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49174     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;
49175 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49176     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49177     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;
49178 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49179   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49180   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49181 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49182 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49183 
49184 
49185     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49186     VULKAN_HPP_NODISCARD Result createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49187 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49188     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49189     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;
49190 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49191   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49192   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49193 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49194 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49195 
49196 
49197     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49198     VULKAN_HPP_NODISCARD Result debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49199 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49200     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49201     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49202 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49203 
49204 
49205     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49206     VULKAN_HPP_NODISCARD Result debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49207 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49208     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49209     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49210 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49211 
49212 
49213 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49214     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49215     VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49216 #else
49217     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49218     VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49219 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49220 
49221 
49222 
49223     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49224     void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49225 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49226     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49227     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;
49228 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49229 
49230 
49231     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49232     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49233 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49234     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49235     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49236 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49237 
49238 
49239     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49240     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49242     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49243     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV 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;
49244 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49245 
49246 
49247     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49248     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49249 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49250     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49251     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49252 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49253 
49254 
49255     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49256     void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49257 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49258     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49259     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;
49260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49261 
49262 
49263     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49264     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49265 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49266     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49267     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49268 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49269 
49270 
49271     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49272     void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49274     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49275     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;
49276 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49277 
49278 
49279     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49280     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49281 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49282     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49283     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49284 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49285 
49286 
49287     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49288     void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49289 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49290     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49291     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;
49292 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49293 
49294 
49295     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49296     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49297 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49298     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49299     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49300 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49301 
49302 
49303     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49304     void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49305 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49306     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49307     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;
49308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49309 
49310 
49311     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49312     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49313 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49314     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49315     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49316 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49317 
49318 
49319     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49320     void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49321 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49322     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49323     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;
49324 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49325 
49326 
49327     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49328     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49329 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49330     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49331     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49332 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49333 
49334 
49335     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49336     void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49337 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49338     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49339     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;
49340 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49341 
49342 
49343     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49344     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49345 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49346     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49347     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49348 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49349 
49350 
49351     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49352     void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49353 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49354     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49355     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;
49356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49357 
49358     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49359     void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49361     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49362     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;
49363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49364 
49365 
49366     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49367     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49368 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49369     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49370     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49371 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49372 
49373 
49374     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49375     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49376 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49377     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49378     void destroy( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49380 
49381 
49382     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49383     void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49384 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49385     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49386     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;
49387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49388 
49389 
49390     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49391     void destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49392 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49393     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49394     void destroy( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49395 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49396 
49397 
49398     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49399     void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49400 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49401     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49402     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;
49403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49404 
49405 
49406     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49407     void destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49408 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49409     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49410     void destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49411 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49412 
49413 
49414     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49415     void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49416 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49417     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49418     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;
49419 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49420 
49421 
49422     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49423     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49424 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49425     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49426     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49427 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49428 
49429 
49430     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49431     void destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49432 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49433     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49434     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;
49435 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49436 
49437 
49438     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49439     void destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49440 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49441     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49442     void destroy( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49443 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49444 
49445 
49446     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49447     void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49448 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49449     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49450     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;
49451 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49452 
49453 
49454     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49455     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49456 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49457     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49458     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49459 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49460 
49461 
49462     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49463     void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49464 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49465     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49466     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;
49467 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49468 
49469 
49470     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49471     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49472 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49473     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49474     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49475 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49476 
49477 
49478     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49479     void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49480 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49481     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49482     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;
49483 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49484 
49485 
49486     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49487     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49488 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49489     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49490     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49491 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49492 
49493 
49494     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49495     void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49496 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49497     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49498     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;
49499 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49500 
49501 
49502     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49503     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49504 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49505     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49506     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49507 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49508 
49509 
49510     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49511     void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49512 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49513     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49514     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;
49515 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49516 
49517 
49518     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49519     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49520 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49521     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49522     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49523 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49524 
49525 
49526     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49527     void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49528 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49529     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49530     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;
49531 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49532 
49533 
49534     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49535     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49536 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49537     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49538     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49539 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49540 
49541 
49542     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49543     void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49544 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49545     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49546     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;
49547 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49548 
49549 
49550     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49551     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49552 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49553     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49554     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49555 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49556 
49557 
49558     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49559     void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49560 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49561     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49562     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;
49563 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49564 
49565 
49566     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49567     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49568 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49569     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49570     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49571 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49572 
49573 
49574     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49575     void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49576 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49577     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49578     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;
49579 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49580 
49581 
49582     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49583     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49584 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49585     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49586     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49587 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49588 
49589 
49590     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49591     void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49592 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49593     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49594     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;
49595 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49596 
49597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49598     void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49599 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49600     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49601     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;
49602 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49603 
49604 
49605     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49606     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49607 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49608     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49609     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49610 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49611 
49612 
49613     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49614     void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49616     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49617     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;
49618 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49619 
49620 
49621     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49622     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49623 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49624     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49625     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49626 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49627 
49628 
49629     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49630     void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49631 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49632     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49633     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;
49634 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49635 
49636 
49637     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49638     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49639 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49640     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49641     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49642 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49643 
49644 
49645     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49646     void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49647 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49648     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49649     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;
49650 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49651 
49652 
49653     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49654     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49655 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49656     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49657     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49658 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49659 
49660 
49661     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49662     void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49664     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49665     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;
49666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49667 
49668 
49669     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49670     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49671 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49672     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49673     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49674 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49675 
49676 
49677 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49678     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49679     VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49680 #else
49681     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49682     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49683 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49684 
49685 
49686 
49687     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49688     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;
49689 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49690     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49691     typename ResultValueType<void>::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49693 
49694 
49695     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49696     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;
49697 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49698     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49699     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;
49700 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49701 
49702 
49703     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49704     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;
49705 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49706     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49707     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;
49708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49709 
49710 
49711     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49712     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;
49713 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49714     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49715     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;
49716 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49717 
49718 
49719     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49720     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;
49721 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49722     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49723     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;
49724 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49725 
49726 
49727     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49728     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;
49729 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49730     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49731     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;
49732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49733 
49734 
49735     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49736     void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49737 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49738     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49739     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;
49740 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49741 
49742 
49743     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49744     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49745 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49746     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49747     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49748 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49749 
49750 
49751     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49752     void getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR* pSizeInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49754     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49755     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const AccelerationStructureBuildGeometryInfoKHR & buildInfo, ArrayProxy<const uint32_t> const & maxPrimitiveCounts VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
49756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49757 
49758 
49759     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49760     DeviceAddress getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49762     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49763     DeviceAddress getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49765 
49766 
49767     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49768     VULKAN_HPP_NODISCARD Result getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49769 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49770     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49771     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type getAccelerationStructureHandleNV(  VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, ArrayProxy<T> const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
49772     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49773     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<T,Allocator>>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49774     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49775     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<T>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49777 
49778 
49779     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49780     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;
49781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49782     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49783     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49784     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49785     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49786 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49787 
49788 
49789 #ifdef VK_USE_PLATFORM_ANDROID_KHR
49790     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49791     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;
49792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49793     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49794     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49795     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49796     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;
49797 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49798 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
49799 
49800 
49801     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49802     DeviceAddress getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49803 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49804     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49805     DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49806 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49807 
49808     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49809     DeviceAddress getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49810 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49811     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49812     DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49813 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49814 
49815     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49816     DeviceAddress getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49817 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49818     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49819     DeviceAddress getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49820 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49821 
49822 
49823     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49824     void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49825 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49826     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49827     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49828 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49829 
49830 
49831     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49832     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;
49833 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49834     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49835     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49836     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49837     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49838 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49839 
49840     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49841     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;
49842 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49843     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49844     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49845     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49846     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49847 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49848 
49849 
49850     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49851     uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49852 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49853     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49854     uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49855 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49856 
49857     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49858     uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49859 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49860     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49861     uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49862 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49863 
49864 
49865     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49866     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;
49867 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49868     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49869     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;
49870     template <typename Uint64_tAllocator = std::allocator<uint64_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49871     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49872     template <typename Uint64_tAllocator = std::allocator<uint64_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint64_tAllocator, typename std::enable_if<std::is_same<typename B::value_type, uint64_t>::value, int>::type = 0>
49873     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos, Uint64_tAllocator & uint64_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49874 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49875 
49876 
49877     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49878     uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49879 
49880 
49881 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49882     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49883     VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49884 #else
49885     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49886     VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49887 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49888 
49889 
49890 
49891     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49892     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;
49893 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49894     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49895     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49896     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49897     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49898 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49899 
49900     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49901     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;
49902 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49903     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49904     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49905     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49906     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49907 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49908 
49909 
49910     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49911     void getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR* pVersionInfo, VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR* pCompatibility, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49912 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49913     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49914     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49915 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49916 
49917 
49918     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49919     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;
49920 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49921     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49922     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49923 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49924 
49925     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49926     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;
49927 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49928     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49929     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49930 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49931 
49932 
49933     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49934     VULKAN_HPP_NODISCARD Result getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49935 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49936     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49937     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type getGroupPresentCapabilitiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49938 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49939 
49940 
49941 #ifdef VK_USE_PLATFORM_WIN32_KHR
49942     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49943     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;
49944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49945     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49946     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;
49947 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49948 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49949 
49950 
49951     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49952     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;
49953 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49954     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49955     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;
49956 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49957 
49958 
49959     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49960     void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49962     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49963     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49964 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49965 
49966 
49967     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49968     uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49969 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49970     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49971     uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49972 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49973 
49974     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49975     uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49976 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49977     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49978     uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49979 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49980 
49981 
49982     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49983     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49984 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49985     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49986     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49988 
49989 
49990     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49991     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;
49992 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49993     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49994     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49995 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49996 
49997 
49998     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49999     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;
50000 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50001     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50002     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50003 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50004 
50005 
50006 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50007     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50008     VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50009 #else
50010     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50011     VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50012 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50013 
50014 
50015 
50016     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50017     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;
50018 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50019     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50020     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50021 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50022 
50023 
50024 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50025     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50026     VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50027 #else
50028     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50029     VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50030 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50031 
50032 
50033 
50034 #ifdef VK_USE_PLATFORM_WIN32_KHR
50035     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50036     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;
50037 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50038     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50039     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50040 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50041 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
50042 
50043 
50044     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50045     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;
50046 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50047     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50048     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50049     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50050     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50052 
50053 
50054     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50055     VULKAN_HPP_NODISCARD Result getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50056 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50057     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50058     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50059 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50060 
50061 
50062     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50063     void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50064 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50065     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50066     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50067 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50068 
50069 
50070     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50071     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;
50072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50073     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50074     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50075     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50076     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50078 
50079     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50080     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;
50081 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50082     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50083     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50084     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50085     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50087 
50088 
50089     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50090     void getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50091 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50092     template <typename SparseImageMemoryRequirementsAllocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50093     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50094     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>
50095     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50096 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50097 
50098 
50099     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50100     void getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50101 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50102     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50103     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50104     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>
50105     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50106 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50107 
50108     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50109     void getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50110 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50111     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50112     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50113     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>
50114     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50116 
50117 
50118     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50119     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;
50120 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50121     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50122     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50123 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50124 
50125 
50126     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50127     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;
50128 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50129     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50130     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;
50131 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50132 
50133 
50134     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50135     uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50136 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50137     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50138     uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50139 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50140 
50141 
50142 #ifdef VK_USE_PLATFORM_ANDROID_KHR
50143     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50144     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;
50145 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50146     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50147     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<struct AHardwareBuffer*>::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50149 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
50150 
50151 
50152     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50153     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;
50154 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50155     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50156     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50157 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50158 
50159 
50160     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50161     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;
50162 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50163     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50164     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;
50165 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50166 
50167 
50168     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50169     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;
50170 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50171     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50172     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;
50173 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50174 
50175 
50176 #ifdef VK_USE_PLATFORM_WIN32_KHR
50177     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50178     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;
50179 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50180     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50181     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50182 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50183 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
50184 
50185 
50186 #ifdef VK_USE_PLATFORM_WIN32_KHR
50187     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50188     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;
50189 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50190     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50191     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;
50192 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50193 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
50194 
50195 
50196 #ifdef VK_USE_PLATFORM_WIN32_KHR
50197     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50198     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;
50199 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50200     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50201     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;
50202 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50203 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
50204 
50205 
50206     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50207     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;
50208 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50209     template <typename PastPresentationTimingGOOGLEAllocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50210     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50211     template <typename PastPresentationTimingGOOGLEAllocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PastPresentationTimingGOOGLEAllocator, typename std::enable_if<std::is_same<typename B::value_type, PastPresentationTimingGOOGLE>::value, int>::type = 0>
50212     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50213 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50214 
50215 
50216     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50217     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;
50218 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50219     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50220     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;
50221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50222 
50223 
50224     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50225     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;
50226 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50227     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50228     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50229     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
50230     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50231 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50232 
50233 
50234     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50235     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;
50236 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50237     template <typename PipelineExecutableInternalRepresentationKHRAllocator = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50238     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50239     template <typename PipelineExecutableInternalRepresentationKHRAllocator = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutableInternalRepresentationKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type = 0>
50240     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50241 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50242 
50243 
50244     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50245     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;
50246 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50247     template <typename PipelineExecutablePropertiesKHRAllocator = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50248     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50249     template <typename PipelineExecutablePropertiesKHRAllocator = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutablePropertiesKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutablePropertiesKHR>::value, int>::type = 0>
50250     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50251 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50252 
50253 
50254     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50255     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;
50256 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50257     template <typename PipelineExecutableStatisticKHRAllocator = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50258     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50259     template <typename PipelineExecutableStatisticKHRAllocator = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutableStatisticKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableStatisticKHR>::value, int>::type = 0>
50260     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50261 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50262 
50263 
50264     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50265     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;
50266 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50267     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50268     VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50269 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50270 
50271 
50272     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50273     VULKAN_HPP_NODISCARD Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50274 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50275     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50276     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;
50277     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50278     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;
50279     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50280     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;
50281 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50282 
50283 
50284     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50285     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;
50286 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50287     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50288     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;
50289     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50290     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;
50291     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50292     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;
50293 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50294 
50295 
50296     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50297     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;
50298 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50299     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50300     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;
50301     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50302     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;
50303     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50304     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;
50305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50306 
50307     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50308     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;
50309 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50310     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50311     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;
50312     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50313     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;
50314     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50315     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;
50316 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50317 
50318 
50319     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50320     DeviceSize getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50321 
50322 
50323     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50324     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;
50325 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50326     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50327     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;
50328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50329 
50330 
50331     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50332     void getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50333 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50334     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50335     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50336 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50337 
50338 
50339     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50340     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;
50341 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50342     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50343     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;
50344 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50345 
50346     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50347     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;
50348 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50349     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50350     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;
50351 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50352 
50353 
50354     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50355     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;
50356 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50357     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50358     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50359 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50360 
50361 
50362 #ifdef VK_USE_PLATFORM_WIN32_KHR
50363     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50364     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;
50365 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50366     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50367     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50368 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50369 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
50370 
50371 
50372     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50373     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;
50374 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50375     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50376     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50377     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
50378     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50380 
50381 
50382     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50383     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;
50384 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50385     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50386     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;
50387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50388 
50389 
50390     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50391     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;
50392 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50393     template <typename ImageAllocator = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50394     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Image, ImageAllocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50395     template <typename ImageAllocator = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ImageAllocator, typename std::enable_if<std::is_same<typename B::value_type, Image>::value, int>::type = 0>
50396     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Image, ImageAllocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50397 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50398 
50399 
50400 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50401     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50402     VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50403 #else
50404     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50405     VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50406 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50407 
50408 
50409 
50410     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50411     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;
50412 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50413     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50414     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50415     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
50416     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50418 
50419 
50420     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50421     VULKAN_HPP_NODISCARD Result importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50422 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50423     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50424     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50425 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50426 
50427 
50428 #ifdef VK_USE_PLATFORM_WIN32_KHR
50429     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50430     VULKAN_HPP_NODISCARD Result importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50431 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50432     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50433     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50434 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50435 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
50436 
50437 
50438     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50439     VULKAN_HPP_NODISCARD Result importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50440 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50441     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50442     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50443 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50444 
50445 
50446 #ifdef VK_USE_PLATFORM_WIN32_KHR
50447     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50448     VULKAN_HPP_NODISCARD Result importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50449 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50450     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50451     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50452 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50453 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
50454 
50455 
50456     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50457     VULKAN_HPP_NODISCARD Result initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50458 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50459     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50460     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50461 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50462 
50463 
50464     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50465     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;
50466 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50467     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50468     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;
50469 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50470 
50471 
50472     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50473     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;
50474 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50475     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50476     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;
50477 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50478 
50479 
50480     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50481     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;
50482 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50483     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50484     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;
50485 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50486 
50487 
50488     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50489     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;
50490 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50491     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50492     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;
50493 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50494 
50495 
50496     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50497     VULKAN_HPP_NODISCARD Result registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50499     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50500     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;
50501 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
50502   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50503   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50504 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
50505 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50506 
50507 
50508     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50509     VULKAN_HPP_NODISCARD Result registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50510 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50511     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50512     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;
50513 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
50514   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50515   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50516 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
50517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50518 
50519 
50520 #ifdef VK_USE_PLATFORM_WIN32_KHR
50521 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50522     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50523     VULKAN_HPP_NODISCARD Result releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50524 #else
50525     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50526     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;
50527 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50528 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
50529 
50530 
50531 
50532 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50533     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50534     VULKAN_HPP_NODISCARD Result releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50535 #else
50536     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50537     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;
50538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50539 
50540 
50541 
50542 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50543     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50544     VULKAN_HPP_NODISCARD Result release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50545 #else
50546     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50547     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50548 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50549 
50550 
50551 
50552     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50553     void releaseProfilingLockKHR( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50554 
50555 
50556 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50557     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50558     VULKAN_HPP_NODISCARD Result resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50559 #else
50560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50561     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;
50562 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50563 
50564 
50565 
50566 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50567     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50568     Result resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50569 #else
50570     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50571     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;
50572 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50573 
50574 
50575 
50576 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50577     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50578     VULKAN_HPP_NODISCARD Result resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50579 #else
50580     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50581     typename ResultValueType<void>::type resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50582 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50583 
50584 
50585 
50586     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50587     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;
50588 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50589     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50590     typename ResultValueType<void>::type resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50591 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50592 
50593 
50594     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50595     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;
50596 
50597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50598     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;
50599 
50600 
50601     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50602     VULKAN_HPP_NODISCARD Result setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50603 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50604     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50605     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50606 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50607 
50608 
50609     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50610     VULKAN_HPP_NODISCARD Result setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50611 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50612     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50613     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50614 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50615 
50616 
50617 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50618     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50619     VULKAN_HPP_NODISCARD Result setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50620 #else
50621     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50622     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;
50623 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50624 
50625 
50626 
50627     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50628     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;
50629 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50630     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50631     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;
50632 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50633 
50634 
50635     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50636     void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50637 
50638 
50639 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
50640     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50641     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;
50642 #else
50643     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50644     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;
50645 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50646 
50647 
50648 
50649     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50650     VULKAN_HPP_NODISCARD Result signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50651 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50652     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50653     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50654 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50655 
50656     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50657     VULKAN_HPP_NODISCARD Result signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50658 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50659     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50660     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50661 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50662 
50663 
50664     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50665     void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50666 
50667     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50668     void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50669 
50670 
50671     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50672     void uninitializePerformanceApiINTEL( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50673 
50674 
50675     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50676     void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
50677 
50678 
50679     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50680     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;
50681 
50682     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50683     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;
50684 
50685 
50686     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50687     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;
50688 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50689     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50690     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;
50691 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50692 
50693 
50694     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50695     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;
50696 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50697     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50698     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;
50699 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50700 
50701 
50702     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50703     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;
50704 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50705     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50706     VULKAN_HPP_NODISCARD Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50707 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50708 
50709     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50710     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;
50711 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50712     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50713     VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50714 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50715 
50716 
50717     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50718     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;
50719 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
50720     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50721     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;
50722     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50723     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<T,Allocator>>::type writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50724     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
50725     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<T>::type writeAccelerationStructuresPropertyKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
50726 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50727 
operator VkDevice() const50728     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT
50729     {
50730       return m_device;
50731     }
50732 
operator bool() const50733     explicit operator bool() const VULKAN_HPP_NOEXCEPT
50734     {
50735       return m_device != VK_NULL_HANDLE;
50736     }
50737 
operator !() const50738     bool operator!() const VULKAN_HPP_NOEXCEPT
50739     {
50740       return m_device == VK_NULL_HANDLE;
50741     }
50742 
50743   private:
50744     VkDevice m_device;
50745   };
50746   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" );
50747 
50748   template <>
50749   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDevice>
50750   {
50751     using type = VULKAN_HPP_NAMESPACE::Device;
50752   };
50753 
50754   template <>
50755   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDevice>
50756   {
50757     using Type = VULKAN_HPP_NAMESPACE::Device;
50758   };
50759 
50760 
50761   template <>
50762   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice>
50763   {
50764     using Type = VULKAN_HPP_NAMESPACE::Device;
50765   };
50766 
50767 
50768   template <>
50769   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Device>
50770   {
50771     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
50772   };
50773 
50774   struct DisplayModeParametersKHR
50775   {
50776 
50777 
50778 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50779     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR(VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {}) VULKAN_HPP_NOEXCEPT
50780     : visibleRegion( visibleRegion_ ), refreshRate( refreshRate_ )
50781     {}
50782 
50783     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50784 
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50785     DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50786       : DisplayModeParametersKHR( *reinterpret_cast<DisplayModeParametersKHR const *>( &rhs ) )
50787     {}
50788 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50789 
50790     VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50791 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50792     DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50793     {
50794       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const *>( &rhs );
50795       return *this;
50796     }
50797 
setVisibleRegionVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50798     DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
50799     {
50800       visibleRegion = visibleRegion_;
50801       return *this;
50802     }
50803 
setRefreshRateVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50804     DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT
50805     {
50806       refreshRate = refreshRate_;
50807       return *this;
50808     }
50809 
50810 
operator VkDisplayModeParametersKHR const&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50811     operator VkDisplayModeParametersKHR const&() const VULKAN_HPP_NOEXCEPT
50812     {
50813       return *reinterpret_cast<const VkDisplayModeParametersKHR*>( this );
50814     }
50815 
operator VkDisplayModeParametersKHR&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50816     operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT
50817     {
50818       return *reinterpret_cast<VkDisplayModeParametersKHR*>( this );
50819     }
50820 
50821 
50822 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50823     auto operator<=>( DisplayModeParametersKHR const& ) const = default;
50824 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50825     bool operator==( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50826     {
50827       return ( visibleRegion == rhs.visibleRegion )
50828           && ( refreshRate == rhs.refreshRate );
50829     }
50830 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50831     bool operator!=( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50832     {
50833       return !operator==( rhs );
50834     }
50835 #endif
50836 
50837 
50838 
50839   public:
50840     VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {};
50841     uint32_t refreshRate = {};
50842 
50843   };
50844   static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" );
50845   static_assert( std::is_standard_layout<DisplayModeParametersKHR>::value, "struct wrapper is not a standard layout!" );
50846 
50847   struct DisplayModeCreateInfoKHR
50848   {
50849     static const bool allowDuplicate = false;
50850     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR;
50851 
50852 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50853     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
50854     : flags( flags_ ), parameters( parameters_ )
50855     {}
50856 
50857     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50858 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50859     DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50860       : DisplayModeCreateInfoKHR( *reinterpret_cast<DisplayModeCreateInfoKHR const *>( &rhs ) )
50861     {}
50862 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50863 
50864     VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50865 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50866     DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50867     {
50868       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const *>( &rhs );
50869       return *this;
50870     }
50871 
setPNextVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50872     DisplayModeCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
50873     {
50874       pNext = pNext_;
50875       return *this;
50876     }
50877 
setFlagsVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50878     DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
50879     {
50880       flags = flags_;
50881       return *this;
50882     }
50883 
setParametersVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50884     DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT
50885     {
50886       parameters = parameters_;
50887       return *this;
50888     }
50889 
50890 
operator VkDisplayModeCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50891     operator VkDisplayModeCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
50892     {
50893       return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( this );
50894     }
50895 
operator VkDisplayModeCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50896     operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
50897     {
50898       return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>( this );
50899     }
50900 
50901 
50902 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50903     auto operator<=>( DisplayModeCreateInfoKHR const& ) const = default;
50904 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50905     bool operator==( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50906     {
50907       return ( sType == rhs.sType )
50908           && ( pNext == rhs.pNext )
50909           && ( flags == rhs.flags )
50910           && ( parameters == rhs.parameters );
50911     }
50912 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50913     bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50914     {
50915       return !operator==( rhs );
50916     }
50917 #endif
50918 
50919 
50920 
50921   public:
50922     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
50923     const void* pNext = {};
50924     VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {};
50925     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
50926 
50927   };
50928   static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" );
50929   static_assert( std::is_standard_layout<DisplayModeCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
50930 
50931   template <>
50932   struct CppType<StructureType, StructureType::eDisplayModeCreateInfoKHR>
50933   {
50934     using Type = DisplayModeCreateInfoKHR;
50935   };
50936 
50937   class DisplayModeKHR
50938   {
50939   public:
50940     using CType = VkDisplayModeKHR;
50941 
50942     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR;
50943     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
50944 
50945   public:
DisplayModeKHR()50946     VULKAN_HPP_CONSTEXPR DisplayModeKHR() VULKAN_HPP_NOEXCEPT
50947       : m_displayModeKHR(VK_NULL_HANDLE)
50948     {}
50949 
DisplayModeKHR(std::nullptr_t)50950     VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
50951       : m_displayModeKHR(VK_NULL_HANDLE)
50952     {}
50953 
DisplayModeKHR(VkDisplayModeKHR displayModeKHR)50954     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT
50955       : m_displayModeKHR( displayModeKHR )
50956     {}
50957 
50958 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayModeKHR displayModeKHR)50959     DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR) VULKAN_HPP_NOEXCEPT
50960     {
50961       m_displayModeKHR = displayModeKHR;
50962       return *this;
50963     }
50964 #endif
50965 
operator =(std::nullptr_t)50966     DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
50967     {
50968       m_displayModeKHR = VK_NULL_HANDLE;
50969       return *this;
50970     }
50971 
50972 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50973     auto operator<=>( DisplayModeKHR const& ) const = default;
50974 #else
operator ==(DisplayModeKHR const & rhs) const50975     bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
50976     {
50977       return m_displayModeKHR == rhs.m_displayModeKHR;
50978     }
50979 
operator !=(DisplayModeKHR const & rhs) const50980     bool operator!=(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
50981     {
50982       return m_displayModeKHR != rhs.m_displayModeKHR;
50983     }
50984 
operator <(DisplayModeKHR const & rhs) const50985     bool operator<(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
50986     {
50987       return m_displayModeKHR < rhs.m_displayModeKHR;
50988     }
50989 #endif
50990 
operator VkDisplayModeKHR() const50991     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT
50992     {
50993       return m_displayModeKHR;
50994     }
50995 
operator bool() const50996     explicit operator bool() const VULKAN_HPP_NOEXCEPT
50997     {
50998       return m_displayModeKHR != VK_NULL_HANDLE;
50999     }
51000 
operator !() const51001     bool operator!() const VULKAN_HPP_NOEXCEPT
51002     {
51003       return m_displayModeKHR == VK_NULL_HANDLE;
51004     }
51005 
51006   private:
51007     VkDisplayModeKHR m_displayModeKHR;
51008   };
51009   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" );
51010 
51011   template <>
51012   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayModeKHR>
51013   {
51014     using type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
51015   };
51016 
51017   template <>
51018   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR>
51019   {
51020     using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
51021   };
51022 
51023 
51024   template <>
51025   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR>
51026   {
51027     using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
51028   };
51029 
51030 
51031   template <>
51032   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
51033   {
51034     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
51035   };
51036 
51037   struct ExtensionProperties
51038   {
51039 
51040 
51041 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties51042     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& extensionName_ = {}, uint32_t specVersion_ = {}) VULKAN_HPP_NOEXCEPT
51043     : extensionName( extensionName_ ), specVersion( specVersion_ )
51044     {}
51045 
51046     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51047 
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties51048     ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51049       : ExtensionProperties( *reinterpret_cast<ExtensionProperties const *>( &rhs ) )
51050     {}
51051 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51052 
51053     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51054 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties51055     ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51056     {
51057       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExtensionProperties const *>( &rhs );
51058       return *this;
51059     }
51060 
51061 
operator VkExtensionProperties const&VULKAN_HPP_NAMESPACE::ExtensionProperties51062     operator VkExtensionProperties const&() const VULKAN_HPP_NOEXCEPT
51063     {
51064       return *reinterpret_cast<const VkExtensionProperties*>( this );
51065     }
51066 
operator VkExtensionProperties&VULKAN_HPP_NAMESPACE::ExtensionProperties51067     operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT
51068     {
51069       return *reinterpret_cast<VkExtensionProperties*>( this );
51070     }
51071 
51072 
51073 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51074     auto operator<=>( ExtensionProperties const& ) const = default;
51075 #else
operator ==VULKAN_HPP_NAMESPACE::ExtensionProperties51076     bool operator==( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51077     {
51078       return ( extensionName == rhs.extensionName )
51079           && ( specVersion == rhs.specVersion );
51080     }
51081 
operator !=VULKAN_HPP_NAMESPACE::ExtensionProperties51082     bool operator!=( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51083     {
51084       return !operator==( rhs );
51085     }
51086 #endif
51087 
51088 
51089 
51090   public:
51091     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> extensionName = {};
51092     uint32_t specVersion = {};
51093 
51094   };
51095   static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" );
51096   static_assert( std::is_standard_layout<ExtensionProperties>::value, "struct wrapper is not a standard layout!" );
51097 
51098   struct LayerProperties
51099   {
51100 
51101 
51102 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties51103     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
51104     : layerName( layerName_ ), specVersion( specVersion_ ), implementationVersion( implementationVersion_ ), description( description_ )
51105     {}
51106 
51107     VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51108 
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties51109     LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51110       : LayerProperties( *reinterpret_cast<LayerProperties const *>( &rhs ) )
51111     {}
51112 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51113 
51114     VULKAN_HPP_CONSTEXPR_14 LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51115 
operator =VULKAN_HPP_NAMESPACE::LayerProperties51116     LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51117     {
51118       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerProperties const *>( &rhs );
51119       return *this;
51120     }
51121 
51122 
operator VkLayerProperties const&VULKAN_HPP_NAMESPACE::LayerProperties51123     operator VkLayerProperties const&() const VULKAN_HPP_NOEXCEPT
51124     {
51125       return *reinterpret_cast<const VkLayerProperties*>( this );
51126     }
51127 
operator VkLayerProperties&VULKAN_HPP_NAMESPACE::LayerProperties51128     operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
51129     {
51130       return *reinterpret_cast<VkLayerProperties*>( this );
51131     }
51132 
51133 
51134 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51135     auto operator<=>( LayerProperties const& ) const = default;
51136 #else
operator ==VULKAN_HPP_NAMESPACE::LayerProperties51137     bool operator==( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51138     {
51139       return ( layerName == rhs.layerName )
51140           && ( specVersion == rhs.specVersion )
51141           && ( implementationVersion == rhs.implementationVersion )
51142           && ( description == rhs.description );
51143     }
51144 
operator !=VULKAN_HPP_NAMESPACE::LayerProperties51145     bool operator!=( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51146     {
51147       return !operator==( rhs );
51148     }
51149 #endif
51150 
51151 
51152 
51153   public:
51154     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layerName = {};
51155     uint32_t specVersion = {};
51156     uint32_t implementationVersion = {};
51157     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
51158 
51159   };
51160   static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" );
51161   static_assert( std::is_standard_layout<LayerProperties>::value, "struct wrapper is not a standard layout!" );
51162 
51163   struct PerformanceCounterKHR
51164   {
51165     static const bool allowDuplicate = false;
51166     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR;
51167 
51168 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR51169     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
51170     : unit( unit_ ), scope( scope_ ), storage( storage_ ), uuid( uuid_ )
51171     {}
51172 
51173     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51174 
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR51175     PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51176       : PerformanceCounterKHR( *reinterpret_cast<PerformanceCounterKHR const *>( &rhs ) )
51177     {}
51178 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51179 
51180     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51181 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51182     PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51183     {
51184       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const *>( &rhs );
51185       return *this;
51186     }
51187 
51188 
operator VkPerformanceCounterKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51189     operator VkPerformanceCounterKHR const&() const VULKAN_HPP_NOEXCEPT
51190     {
51191       return *reinterpret_cast<const VkPerformanceCounterKHR*>( this );
51192     }
51193 
operator VkPerformanceCounterKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51194     operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
51195     {
51196       return *reinterpret_cast<VkPerformanceCounterKHR*>( this );
51197     }
51198 
51199 
51200 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51201     auto operator<=>( PerformanceCounterKHR const& ) const = default;
51202 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51203     bool operator==( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51204     {
51205       return ( sType == rhs.sType )
51206           && ( pNext == rhs.pNext )
51207           && ( unit == rhs.unit )
51208           && ( scope == rhs.scope )
51209           && ( storage == rhs.storage )
51210           && ( uuid == rhs.uuid );
51211     }
51212 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51213     bool operator!=( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51214     {
51215       return !operator==( rhs );
51216     }
51217 #endif
51218 
51219 
51220 
51221   public:
51222     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
51223     const void* pNext = {};
51224     VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
51225     VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
51226     VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32;
51227     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> uuid = {};
51228 
51229   };
51230   static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), "struct and wrapper have different size!" );
51231   static_assert( std::is_standard_layout<PerformanceCounterKHR>::value, "struct wrapper is not a standard layout!" );
51232 
51233   template <>
51234   struct CppType<StructureType, StructureType::ePerformanceCounterKHR>
51235   {
51236     using Type = PerformanceCounterKHR;
51237   };
51238 
51239   struct PerformanceCounterDescriptionKHR
51240   {
51241     static const bool allowDuplicate = false;
51242     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR;
51243 
51244 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51245     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
51246     : flags( flags_ ), name( name_ ), category( category_ ), description( description_ )
51247     {}
51248 
51249     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51250 
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51251     PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51252       : PerformanceCounterDescriptionKHR( *reinterpret_cast<PerformanceCounterDescriptionKHR const *>( &rhs ) )
51253     {}
51254 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51255 
51256     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51257 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51258     PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51259     {
51260       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const *>( &rhs );
51261       return *this;
51262     }
51263 
51264 
operator VkPerformanceCounterDescriptionKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51265     operator VkPerformanceCounterDescriptionKHR const&() const VULKAN_HPP_NOEXCEPT
51266     {
51267       return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR*>( this );
51268     }
51269 
operator VkPerformanceCounterDescriptionKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51270     operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
51271     {
51272       return *reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( this );
51273     }
51274 
51275 
51276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51277     auto operator<=>( PerformanceCounterDescriptionKHR const& ) const = default;
51278 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51279     bool operator==( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51280     {
51281       return ( sType == rhs.sType )
51282           && ( pNext == rhs.pNext )
51283           && ( flags == rhs.flags )
51284           && ( name == rhs.name )
51285           && ( category == rhs.category )
51286           && ( description == rhs.description );
51287     }
51288 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51289     bool operator!=( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51290     {
51291       return !operator==( rhs );
51292     }
51293 #endif
51294 
51295 
51296 
51297   public:
51298     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
51299     const void* pNext = {};
51300     VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
51301     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
51302     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
51303     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
51304 
51305   };
51306   static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), "struct and wrapper have different size!" );
51307   static_assert( std::is_standard_layout<PerformanceCounterDescriptionKHR>::value, "struct wrapper is not a standard layout!" );
51308 
51309   template <>
51310   struct CppType<StructureType, StructureType::ePerformanceCounterDescriptionKHR>
51311   {
51312     using Type = PerformanceCounterDescriptionKHR;
51313   };
51314 
51315   struct DisplayModePropertiesKHR
51316   {
51317 
51318 
51319 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR51320     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
51321     : displayMode( displayMode_ ), parameters( parameters_ )
51322     {}
51323 
51324     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51325 
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR51326     DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51327       : DisplayModePropertiesKHR( *reinterpret_cast<DisplayModePropertiesKHR const *>( &rhs ) )
51328     {}
51329 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51330 
51331     VULKAN_HPP_CONSTEXPR_14 DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51332 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR51333     DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51334     {
51335       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const *>( &rhs );
51336       return *this;
51337     }
51338 
51339 
operator VkDisplayModePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR51340     operator VkDisplayModePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
51341     {
51342       return *reinterpret_cast<const VkDisplayModePropertiesKHR*>( this );
51343     }
51344 
operator VkDisplayModePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR51345     operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT
51346     {
51347       return *reinterpret_cast<VkDisplayModePropertiesKHR*>( this );
51348     }
51349 
51350 
51351 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51352     auto operator<=>( DisplayModePropertiesKHR const& ) const = default;
51353 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR51354     bool operator==( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51355     {
51356       return ( displayMode == rhs.displayMode )
51357           && ( parameters == rhs.parameters );
51358     }
51359 
operator !=VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR51360     bool operator!=( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51361     {
51362       return !operator==( rhs );
51363     }
51364 #endif
51365 
51366 
51367 
51368   public:
51369     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
51370     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
51371 
51372   };
51373   static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" );
51374   static_assert( std::is_standard_layout<DisplayModePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
51375 
51376   struct DisplayModeProperties2KHR
51377   {
51378     static const bool allowDuplicate = false;
51379     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR;
51380 
51381 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR51382     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {}) VULKAN_HPP_NOEXCEPT
51383     : displayModeProperties( displayModeProperties_ )
51384     {}
51385 
51386     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51387 
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR51388     DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51389       : DisplayModeProperties2KHR( *reinterpret_cast<DisplayModeProperties2KHR const *>( &rhs ) )
51390     {}
51391 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51392 
51393     VULKAN_HPP_CONSTEXPR_14 DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51394 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR51395     DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51396     {
51397       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const *>( &rhs );
51398       return *this;
51399     }
51400 
51401 
operator VkDisplayModeProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR51402     operator VkDisplayModeProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
51403     {
51404       return *reinterpret_cast<const VkDisplayModeProperties2KHR*>( this );
51405     }
51406 
operator VkDisplayModeProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR51407     operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT
51408     {
51409       return *reinterpret_cast<VkDisplayModeProperties2KHR*>( this );
51410     }
51411 
51412 
51413 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51414     auto operator<=>( DisplayModeProperties2KHR const& ) const = default;
51415 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR51416     bool operator==( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51417     {
51418       return ( sType == rhs.sType )
51419           && ( pNext == rhs.pNext )
51420           && ( displayModeProperties == rhs.displayModeProperties );
51421     }
51422 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR51423     bool operator!=( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51424     {
51425       return !operator==( rhs );
51426     }
51427 #endif
51428 
51429 
51430 
51431   public:
51432     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR;
51433     void* pNext = {};
51434     VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {};
51435 
51436   };
51437   static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" );
51438   static_assert( std::is_standard_layout<DisplayModeProperties2KHR>::value, "struct wrapper is not a standard layout!" );
51439 
51440   template <>
51441   struct CppType<StructureType, StructureType::eDisplayModeProperties2KHR>
51442   {
51443     using Type = DisplayModeProperties2KHR;
51444   };
51445 
51446   struct DisplayPlaneInfo2KHR
51447   {
51448     static const bool allowDuplicate = false;
51449     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR;
51450 
51451 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51452     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}) VULKAN_HPP_NOEXCEPT
51453     : mode( mode_ ), planeIndex( planeIndex_ )
51454     {}
51455 
51456     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51457 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51458     DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51459       : DisplayPlaneInfo2KHR( *reinterpret_cast<DisplayPlaneInfo2KHR const *>( &rhs ) )
51460     {}
51461 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51462 
51463     VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51464 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51465     DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51466     {
51467       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const *>( &rhs );
51468       return *this;
51469     }
51470 
setPNextVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51471     DisplayPlaneInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51472     {
51473       pNext = pNext_;
51474       return *this;
51475     }
51476 
setModeVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51477     DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
51478     {
51479       mode = mode_;
51480       return *this;
51481     }
51482 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51483     DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
51484     {
51485       planeIndex = planeIndex_;
51486       return *this;
51487     }
51488 
51489 
operator VkDisplayPlaneInfo2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51490     operator VkDisplayPlaneInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
51491     {
51492       return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( this );
51493     }
51494 
operator VkDisplayPlaneInfo2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51495     operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT
51496     {
51497       return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>( this );
51498     }
51499 
51500 
51501 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51502     auto operator<=>( DisplayPlaneInfo2KHR const& ) const = default;
51503 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51504     bool operator==( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51505     {
51506       return ( sType == rhs.sType )
51507           && ( pNext == rhs.pNext )
51508           && ( mode == rhs.mode )
51509           && ( planeIndex == rhs.planeIndex );
51510     }
51511 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR51512     bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51513     {
51514       return !operator==( rhs );
51515     }
51516 #endif
51517 
51518 
51519 
51520   public:
51521     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
51522     const void* pNext = {};
51523     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {};
51524     uint32_t planeIndex = {};
51525 
51526   };
51527   static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" );
51528   static_assert( std::is_standard_layout<DisplayPlaneInfo2KHR>::value, "struct wrapper is not a standard layout!" );
51529 
51530   template <>
51531   struct CppType<StructureType, StructureType::eDisplayPlaneInfo2KHR>
51532   {
51533     using Type = DisplayPlaneInfo2KHR;
51534   };
51535 
51536   struct DisplayPlaneCapabilitiesKHR
51537   {
51538 
51539 
51540 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR51541     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
51542     : supportedAlpha( supportedAlpha_ ), minSrcPosition( minSrcPosition_ ), maxSrcPosition( maxSrcPosition_ ), minSrcExtent( minSrcExtent_ ), maxSrcExtent( maxSrcExtent_ ), minDstPosition( minDstPosition_ ), maxDstPosition( maxDstPosition_ ), minDstExtent( minDstExtent_ ), maxDstExtent( maxDstExtent_ )
51543     {}
51544 
51545     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51546 
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR51547     DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51548       : DisplayPlaneCapabilitiesKHR( *reinterpret_cast<DisplayPlaneCapabilitiesKHR const *>( &rhs ) )
51549     {}
51550 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51551 
51552     VULKAN_HPP_CONSTEXPR_14 DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51553 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR51554     DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51555     {
51556       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const *>( &rhs );
51557       return *this;
51558     }
51559 
51560 
operator VkDisplayPlaneCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR51561     operator VkDisplayPlaneCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
51562     {
51563       return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>( this );
51564     }
51565 
operator VkDisplayPlaneCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR51566     operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
51567     {
51568       return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( this );
51569     }
51570 
51571 
51572 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51573     auto operator<=>( DisplayPlaneCapabilitiesKHR const& ) const = default;
51574 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR51575     bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51576     {
51577       return ( supportedAlpha == rhs.supportedAlpha )
51578           && ( minSrcPosition == rhs.minSrcPosition )
51579           && ( maxSrcPosition == rhs.maxSrcPosition )
51580           && ( minSrcExtent == rhs.minSrcExtent )
51581           && ( maxSrcExtent == rhs.maxSrcExtent )
51582           && ( minDstPosition == rhs.minDstPosition )
51583           && ( maxDstPosition == rhs.maxDstPosition )
51584           && ( minDstExtent == rhs.minDstExtent )
51585           && ( maxDstExtent == rhs.maxDstExtent );
51586     }
51587 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR51588     bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51589     {
51590       return !operator==( rhs );
51591     }
51592 #endif
51593 
51594 
51595 
51596   public:
51597     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {};
51598     VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {};
51599     VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {};
51600     VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {};
51601     VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {};
51602     VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {};
51603     VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {};
51604     VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {};
51605     VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {};
51606 
51607   };
51608   static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" );
51609   static_assert( std::is_standard_layout<DisplayPlaneCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
51610 
51611   struct DisplayPlaneCapabilities2KHR
51612   {
51613     static const bool allowDuplicate = false;
51614     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR;
51615 
51616 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR51617     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR(VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {}) VULKAN_HPP_NOEXCEPT
51618     : capabilities( capabilities_ )
51619     {}
51620 
51621     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51622 
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR51623     DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51624       : DisplayPlaneCapabilities2KHR( *reinterpret_cast<DisplayPlaneCapabilities2KHR const *>( &rhs ) )
51625     {}
51626 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51627 
51628     VULKAN_HPP_CONSTEXPR_14 DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51629 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR51630     DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51631     {
51632       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const *>( &rhs );
51633       return *this;
51634     }
51635 
51636 
operator VkDisplayPlaneCapabilities2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR51637     operator VkDisplayPlaneCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
51638     {
51639       return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>( this );
51640     }
51641 
operator VkDisplayPlaneCapabilities2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR51642     operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
51643     {
51644       return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( this );
51645     }
51646 
51647 
51648 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51649     auto operator<=>( DisplayPlaneCapabilities2KHR const& ) const = default;
51650 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR51651     bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51652     {
51653       return ( sType == rhs.sType )
51654           && ( pNext == rhs.pNext )
51655           && ( capabilities == rhs.capabilities );
51656     }
51657 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR51658     bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51659     {
51660       return !operator==( rhs );
51661     }
51662 #endif
51663 
51664 
51665 
51666   public:
51667     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
51668     void* pNext = {};
51669     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {};
51670 
51671   };
51672   static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" );
51673   static_assert( std::is_standard_layout<DisplayPlaneCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
51674 
51675   template <>
51676   struct CppType<StructureType, StructureType::eDisplayPlaneCapabilities2KHR>
51677   {
51678     using Type = DisplayPlaneCapabilities2KHR;
51679   };
51680 
51681   struct DisplayPlanePropertiesKHR
51682   {
51683 
51684 
51685 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR51686     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, uint32_t currentStackIndex_ = {}) VULKAN_HPP_NOEXCEPT
51687     : currentDisplay( currentDisplay_ ), currentStackIndex( currentStackIndex_ )
51688     {}
51689 
51690     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51691 
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR51692     DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51693       : DisplayPlanePropertiesKHR( *reinterpret_cast<DisplayPlanePropertiesKHR const *>( &rhs ) )
51694     {}
51695 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51696 
51697     VULKAN_HPP_CONSTEXPR_14 DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51698 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR51699     DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51700     {
51701       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const *>( &rhs );
51702       return *this;
51703     }
51704 
51705 
operator VkDisplayPlanePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR51706     operator VkDisplayPlanePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
51707     {
51708       return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>( this );
51709     }
51710 
operator VkDisplayPlanePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR51711     operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT
51712     {
51713       return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>( this );
51714     }
51715 
51716 
51717 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51718     auto operator<=>( DisplayPlanePropertiesKHR const& ) const = default;
51719 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR51720     bool operator==( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51721     {
51722       return ( currentDisplay == rhs.currentDisplay )
51723           && ( currentStackIndex == rhs.currentStackIndex );
51724     }
51725 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR51726     bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51727     {
51728       return !operator==( rhs );
51729     }
51730 #endif
51731 
51732 
51733 
51734   public:
51735     VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {};
51736     uint32_t currentStackIndex = {};
51737 
51738   };
51739   static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" );
51740   static_assert( std::is_standard_layout<DisplayPlanePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
51741 
51742   struct DisplayPlaneProperties2KHR
51743   {
51744     static const bool allowDuplicate = false;
51745     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR;
51746 
51747 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51748     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {}) VULKAN_HPP_NOEXCEPT
51749     : displayPlaneProperties( displayPlaneProperties_ )
51750     {}
51751 
51752     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51753 
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51754     DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51755       : DisplayPlaneProperties2KHR( *reinterpret_cast<DisplayPlaneProperties2KHR const *>( &rhs ) )
51756     {}
51757 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51758 
51759     VULKAN_HPP_CONSTEXPR_14 DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51760 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51761     DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51762     {
51763       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const *>( &rhs );
51764       return *this;
51765     }
51766 
51767 
operator VkDisplayPlaneProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51768     operator VkDisplayPlaneProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
51769     {
51770       return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>( this );
51771     }
51772 
operator VkDisplayPlaneProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51773     operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT
51774     {
51775       return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>( this );
51776     }
51777 
51778 
51779 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51780     auto operator<=>( DisplayPlaneProperties2KHR const& ) const = default;
51781 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51782     bool operator==( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51783     {
51784       return ( sType == rhs.sType )
51785           && ( pNext == rhs.pNext )
51786           && ( displayPlaneProperties == rhs.displayPlaneProperties );
51787     }
51788 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51789     bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51790     {
51791       return !operator==( rhs );
51792     }
51793 #endif
51794 
51795 
51796 
51797   public:
51798     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
51799     void* pNext = {};
51800     VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {};
51801 
51802   };
51803   static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" );
51804   static_assert( std::is_standard_layout<DisplayPlaneProperties2KHR>::value, "struct wrapper is not a standard layout!" );
51805 
51806   template <>
51807   struct CppType<StructureType, StructureType::eDisplayPlaneProperties2KHR>
51808   {
51809     using Type = DisplayPlaneProperties2KHR;
51810   };
51811 
51812   struct DisplayPropertiesKHR
51813   {
51814 
51815 
51816 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51817     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
51818     : display( display_ ), displayName( displayName_ ), physicalDimensions( physicalDimensions_ ), physicalResolution( physicalResolution_ ), supportedTransforms( supportedTransforms_ ), planeReorderPossible( planeReorderPossible_ ), persistentContent( persistentContent_ )
51819     {}
51820 
51821     VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51822 
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51823     DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51824       : DisplayPropertiesKHR( *reinterpret_cast<DisplayPropertiesKHR const *>( &rhs ) )
51825     {}
51826 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51827 
51828     VULKAN_HPP_CONSTEXPR_14 DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51829 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51830     DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51831     {
51832       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const *>( &rhs );
51833       return *this;
51834     }
51835 
51836 
operator VkDisplayPropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51837     operator VkDisplayPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
51838     {
51839       return *reinterpret_cast<const VkDisplayPropertiesKHR*>( this );
51840     }
51841 
operator VkDisplayPropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51842     operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT
51843     {
51844       return *reinterpret_cast<VkDisplayPropertiesKHR*>( this );
51845     }
51846 
51847 
51848 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51849     auto operator<=>( DisplayPropertiesKHR const& ) const = default;
51850 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51851     bool operator==( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51852     {
51853       return ( display == rhs.display )
51854           && ( displayName == rhs.displayName )
51855           && ( physicalDimensions == rhs.physicalDimensions )
51856           && ( physicalResolution == rhs.physicalResolution )
51857           && ( supportedTransforms == rhs.supportedTransforms )
51858           && ( planeReorderPossible == rhs.planeReorderPossible )
51859           && ( persistentContent == rhs.persistentContent );
51860     }
51861 
operator !=VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51862     bool operator!=( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51863     {
51864       return !operator==( rhs );
51865     }
51866 #endif
51867 
51868 
51869 
51870   public:
51871     VULKAN_HPP_NAMESPACE::DisplayKHR display = {};
51872     const char* displayName = {};
51873     VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {};
51874     VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {};
51875     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
51876     VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {};
51877     VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {};
51878 
51879   };
51880   static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" );
51881   static_assert( std::is_standard_layout<DisplayPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
51882 
51883   struct DisplayProperties2KHR
51884   {
51885     static const bool allowDuplicate = false;
51886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR;
51887 
51888 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR51889     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {}) VULKAN_HPP_NOEXCEPT
51890     : displayProperties( displayProperties_ )
51891     {}
51892 
51893     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51894 
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR51895     DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51896       : DisplayProperties2KHR( *reinterpret_cast<DisplayProperties2KHR const *>( &rhs ) )
51897     {}
51898 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51899 
51900     VULKAN_HPP_CONSTEXPR_14 DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51901 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51902     DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51903     {
51904       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const *>( &rhs );
51905       return *this;
51906     }
51907 
51908 
operator VkDisplayProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51909     operator VkDisplayProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
51910     {
51911       return *reinterpret_cast<const VkDisplayProperties2KHR*>( this );
51912     }
51913 
operator VkDisplayProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51914     operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT
51915     {
51916       return *reinterpret_cast<VkDisplayProperties2KHR*>( this );
51917     }
51918 
51919 
51920 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51921     auto operator<=>( DisplayProperties2KHR const& ) const = default;
51922 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51923     bool operator==( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51924     {
51925       return ( sType == rhs.sType )
51926           && ( pNext == rhs.pNext )
51927           && ( displayProperties == rhs.displayProperties );
51928     }
51929 
operator !=VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51930     bool operator!=( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51931     {
51932       return !operator==( rhs );
51933     }
51934 #endif
51935 
51936 
51937 
51938   public:
51939     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR;
51940     void* pNext = {};
51941     VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {};
51942 
51943   };
51944   static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" );
51945   static_assert( std::is_standard_layout<DisplayProperties2KHR>::value, "struct wrapper is not a standard layout!" );
51946 
51947   template <>
51948   struct CppType<StructureType, StructureType::eDisplayProperties2KHR>
51949   {
51950     using Type = DisplayProperties2KHR;
51951   };
51952 
51953   struct PhysicalDeviceExternalBufferInfo
51954   {
51955     static const bool allowDuplicate = false;
51956     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo;
51957 
51958 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51959     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
51960     : flags( flags_ ), usage( usage_ ), handleType( handleType_ )
51961     {}
51962 
51963     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51964 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51965     PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51966       : PhysicalDeviceExternalBufferInfo( *reinterpret_cast<PhysicalDeviceExternalBufferInfo const *>( &rhs ) )
51967     {}
51968 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51969 
51970     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51971 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51972     PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51973     {
51974       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const *>( &rhs );
51975       return *this;
51976     }
51977 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51978     PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51979     {
51980       pNext = pNext_;
51981       return *this;
51982     }
51983 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51984     PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
51985     {
51986       flags = flags_;
51987       return *this;
51988     }
51989 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51990     PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
51991     {
51992       usage = usage_;
51993       return *this;
51994     }
51995 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51996     PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51997     {
51998       handleType = handleType_;
51999       return *this;
52000     }
52001 
52002 
operator VkPhysicalDeviceExternalBufferInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52003     operator VkPhysicalDeviceExternalBufferInfo const&() const VULKAN_HPP_NOEXCEPT
52004     {
52005       return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( this );
52006     }
52007 
operator VkPhysicalDeviceExternalBufferInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52008     operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
52009     {
52010       return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>( this );
52011     }
52012 
52013 
52014 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52015     auto operator<=>( PhysicalDeviceExternalBufferInfo const& ) const = default;
52016 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52017     bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52018     {
52019       return ( sType == rhs.sType )
52020           && ( pNext == rhs.pNext )
52021           && ( flags == rhs.flags )
52022           && ( usage == rhs.usage )
52023           && ( handleType == rhs.handleType );
52024     }
52025 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo52026     bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52027     {
52028       return !operator==( rhs );
52029     }
52030 #endif
52031 
52032 
52033 
52034   public:
52035     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
52036     const void* pNext = {};
52037     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
52038     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
52039     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
52040 
52041   };
52042   static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" );
52043   static_assert( std::is_standard_layout<PhysicalDeviceExternalBufferInfo>::value, "struct wrapper is not a standard layout!" );
52044 
52045   template <>
52046   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalBufferInfo>
52047   {
52048     using Type = PhysicalDeviceExternalBufferInfo;
52049   };
52050   using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
52051 
52052   struct ExternalMemoryProperties
52053   {
52054 
52055 
52056 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties52057     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT
52058     : externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
52059     {}
52060 
52061     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52062 
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties52063     ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52064       : ExternalMemoryProperties( *reinterpret_cast<ExternalMemoryProperties const *>( &rhs ) )
52065     {}
52066 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52067 
52068     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52069 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties52070     ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52071     {
52072       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const *>( &rhs );
52073       return *this;
52074     }
52075 
52076 
operator VkExternalMemoryProperties const&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties52077     operator VkExternalMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
52078     {
52079       return *reinterpret_cast<const VkExternalMemoryProperties*>( this );
52080     }
52081 
operator VkExternalMemoryProperties&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties52082     operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT
52083     {
52084       return *reinterpret_cast<VkExternalMemoryProperties*>( this );
52085     }
52086 
52087 
52088 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52089     auto operator<=>( ExternalMemoryProperties const& ) const = default;
52090 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryProperties52091     bool operator==( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52092     {
52093       return ( externalMemoryFeatures == rhs.externalMemoryFeatures )
52094           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
52095           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
52096     }
52097 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryProperties52098     bool operator!=( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52099     {
52100       return !operator==( rhs );
52101     }
52102 #endif
52103 
52104 
52105 
52106   public:
52107     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {};
52108     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
52109     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {};
52110 
52111   };
52112   static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" );
52113   static_assert( std::is_standard_layout<ExternalMemoryProperties>::value, "struct wrapper is not a standard layout!" );
52114   using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
52115 
52116   struct ExternalBufferProperties
52117   {
52118     static const bool allowDuplicate = false;
52119     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties;
52120 
52121 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties52122     VULKAN_HPP_CONSTEXPR ExternalBufferProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
52123     : externalMemoryProperties( externalMemoryProperties_ )
52124     {}
52125 
52126     VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52127 
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties52128     ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52129       : ExternalBufferProperties( *reinterpret_cast<ExternalBufferProperties const *>( &rhs ) )
52130     {}
52131 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52132 
52133     VULKAN_HPP_CONSTEXPR_14 ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52134 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties52135     ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52136     {
52137       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalBufferProperties const *>( &rhs );
52138       return *this;
52139     }
52140 
52141 
operator VkExternalBufferProperties const&VULKAN_HPP_NAMESPACE::ExternalBufferProperties52142     operator VkExternalBufferProperties const&() const VULKAN_HPP_NOEXCEPT
52143     {
52144       return *reinterpret_cast<const VkExternalBufferProperties*>( this );
52145     }
52146 
operator VkExternalBufferProperties&VULKAN_HPP_NAMESPACE::ExternalBufferProperties52147     operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT
52148     {
52149       return *reinterpret_cast<VkExternalBufferProperties*>( this );
52150     }
52151 
52152 
52153 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52154     auto operator<=>( ExternalBufferProperties const& ) const = default;
52155 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalBufferProperties52156     bool operator==( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52157     {
52158       return ( sType == rhs.sType )
52159           && ( pNext == rhs.pNext )
52160           && ( externalMemoryProperties == rhs.externalMemoryProperties );
52161     }
52162 
operator !=VULKAN_HPP_NAMESPACE::ExternalBufferProperties52163     bool operator!=( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52164     {
52165       return !operator==( rhs );
52166     }
52167 #endif
52168 
52169 
52170 
52171   public:
52172     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties;
52173     void* pNext = {};
52174     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
52175 
52176   };
52177   static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" );
52178   static_assert( std::is_standard_layout<ExternalBufferProperties>::value, "struct wrapper is not a standard layout!" );
52179 
52180   template <>
52181   struct CppType<StructureType, StructureType::eExternalBufferProperties>
52182   {
52183     using Type = ExternalBufferProperties;
52184   };
52185   using ExternalBufferPropertiesKHR = ExternalBufferProperties;
52186 
52187   struct PhysicalDeviceExternalFenceInfo
52188   {
52189     static const bool allowDuplicate = false;
52190     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo;
52191 
52192 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52193     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
52194     : handleType( handleType_ )
52195     {}
52196 
52197     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52198 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52199     PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52200       : PhysicalDeviceExternalFenceInfo( *reinterpret_cast<PhysicalDeviceExternalFenceInfo const *>( &rhs ) )
52201     {}
52202 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52203 
52204     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52205 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52206     PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52207     {
52208       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const *>( &rhs );
52209       return *this;
52210     }
52211 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52212     PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52213     {
52214       pNext = pNext_;
52215       return *this;
52216     }
52217 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52218     PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
52219     {
52220       handleType = handleType_;
52221       return *this;
52222     }
52223 
52224 
operator VkPhysicalDeviceExternalFenceInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52225     operator VkPhysicalDeviceExternalFenceInfo const&() const VULKAN_HPP_NOEXCEPT
52226     {
52227       return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( this );
52228     }
52229 
operator VkPhysicalDeviceExternalFenceInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52230     operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
52231     {
52232       return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>( this );
52233     }
52234 
52235 
52236 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52237     auto operator<=>( PhysicalDeviceExternalFenceInfo const& ) const = default;
52238 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52239     bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52240     {
52241       return ( sType == rhs.sType )
52242           && ( pNext == rhs.pNext )
52243           && ( handleType == rhs.handleType );
52244     }
52245 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo52246     bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52247     {
52248       return !operator==( rhs );
52249     }
52250 #endif
52251 
52252 
52253 
52254   public:
52255     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
52256     const void* pNext = {};
52257     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
52258 
52259   };
52260   static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" );
52261   static_assert( std::is_standard_layout<PhysicalDeviceExternalFenceInfo>::value, "struct wrapper is not a standard layout!" );
52262 
52263   template <>
52264   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFenceInfo>
52265   {
52266     using Type = PhysicalDeviceExternalFenceInfo;
52267   };
52268   using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
52269 
52270   struct ExternalFenceProperties
52271   {
52272     static const bool allowDuplicate = false;
52273     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties;
52274 
52275 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties52276     VULKAN_HPP_CONSTEXPR ExternalFenceProperties(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {}) VULKAN_HPP_NOEXCEPT
52277     : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalFenceFeatures( externalFenceFeatures_ )
52278     {}
52279 
52280     VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52281 
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties52282     ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52283       : ExternalFenceProperties( *reinterpret_cast<ExternalFenceProperties const *>( &rhs ) )
52284     {}
52285 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52286 
52287     VULKAN_HPP_CONSTEXPR_14 ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52288 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties52289     ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52290     {
52291       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFenceProperties const *>( &rhs );
52292       return *this;
52293     }
52294 
52295 
operator VkExternalFenceProperties const&VULKAN_HPP_NAMESPACE::ExternalFenceProperties52296     operator VkExternalFenceProperties const&() const VULKAN_HPP_NOEXCEPT
52297     {
52298       return *reinterpret_cast<const VkExternalFenceProperties*>( this );
52299     }
52300 
operator VkExternalFenceProperties&VULKAN_HPP_NAMESPACE::ExternalFenceProperties52301     operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT
52302     {
52303       return *reinterpret_cast<VkExternalFenceProperties*>( this );
52304     }
52305 
52306 
52307 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52308     auto operator<=>( ExternalFenceProperties const& ) const = default;
52309 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFenceProperties52310     bool operator==( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52311     {
52312       return ( sType == rhs.sType )
52313           && ( pNext == rhs.pNext )
52314           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
52315           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
52316           && ( externalFenceFeatures == rhs.externalFenceFeatures );
52317     }
52318 
operator !=VULKAN_HPP_NAMESPACE::ExternalFenceProperties52319     bool operator!=( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52320     {
52321       return !operator==( rhs );
52322     }
52323 #endif
52324 
52325 
52326 
52327   public:
52328     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties;
52329     void* pNext = {};
52330     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {};
52331     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {};
52332     VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {};
52333 
52334   };
52335   static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" );
52336   static_assert( std::is_standard_layout<ExternalFenceProperties>::value, "struct wrapper is not a standard layout!" );
52337 
52338   template <>
52339   struct CppType<StructureType, StructureType::eExternalFenceProperties>
52340   {
52341     using Type = ExternalFenceProperties;
52342   };
52343   using ExternalFencePropertiesKHR = ExternalFenceProperties;
52344 
52345   struct ImageFormatProperties
52346   {
52347 
52348 
52349 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties52350     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
52351     : maxExtent( maxExtent_ ), maxMipLevels( maxMipLevels_ ), maxArrayLayers( maxArrayLayers_ ), sampleCounts( sampleCounts_ ), maxResourceSize( maxResourceSize_ )
52352     {}
52353 
52354     VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52355 
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties52356     ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52357       : ImageFormatProperties( *reinterpret_cast<ImageFormatProperties const *>( &rhs ) )
52358     {}
52359 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52360 
52361     VULKAN_HPP_CONSTEXPR_14 ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52362 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties52363     ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52364     {
52365       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties const *>( &rhs );
52366       return *this;
52367     }
52368 
52369 
operator VkImageFormatProperties const&VULKAN_HPP_NAMESPACE::ImageFormatProperties52370     operator VkImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
52371     {
52372       return *reinterpret_cast<const VkImageFormatProperties*>( this );
52373     }
52374 
operator VkImageFormatProperties&VULKAN_HPP_NAMESPACE::ImageFormatProperties52375     operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT
52376     {
52377       return *reinterpret_cast<VkImageFormatProperties*>( this );
52378     }
52379 
52380 
52381 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52382     auto operator<=>( ImageFormatProperties const& ) const = default;
52383 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties52384     bool operator==( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52385     {
52386       return ( maxExtent == rhs.maxExtent )
52387           && ( maxMipLevels == rhs.maxMipLevels )
52388           && ( maxArrayLayers == rhs.maxArrayLayers )
52389           && ( sampleCounts == rhs.sampleCounts )
52390           && ( maxResourceSize == rhs.maxResourceSize );
52391     }
52392 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties52393     bool operator!=( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52394     {
52395       return !operator==( rhs );
52396     }
52397 #endif
52398 
52399 
52400 
52401   public:
52402     VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {};
52403     uint32_t maxMipLevels = {};
52404     uint32_t maxArrayLayers = {};
52405     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
52406     VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {};
52407 
52408   };
52409   static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" );
52410   static_assert( std::is_standard_layout<ImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
52411 
52412   struct ExternalImageFormatPropertiesNV
52413   {
52414 
52415 
52416 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV52417     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
52418     : imageFormatProperties( imageFormatProperties_ ), externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
52419     {}
52420 
52421     VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52422 
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV52423     ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
52424       : ExternalImageFormatPropertiesNV( *reinterpret_cast<ExternalImageFormatPropertiesNV const *>( &rhs ) )
52425     {}
52426 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52427 
52428     VULKAN_HPP_CONSTEXPR_14 ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52429 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV52430     ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
52431     {
52432       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const *>( &rhs );
52433       return *this;
52434     }
52435 
52436 
operator VkExternalImageFormatPropertiesNV const&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV52437     operator VkExternalImageFormatPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
52438     {
52439       return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>( this );
52440     }
52441 
operator VkExternalImageFormatPropertiesNV&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV52442     operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
52443     {
52444       return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>( this );
52445     }
52446 
52447 
52448 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52449     auto operator<=>( ExternalImageFormatPropertiesNV const& ) const = default;
52450 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV52451     bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
52452     {
52453       return ( imageFormatProperties == rhs.imageFormatProperties )
52454           && ( externalMemoryFeatures == rhs.externalMemoryFeatures )
52455           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
52456           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
52457     }
52458 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV52459     bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
52460     {
52461       return !operator==( rhs );
52462     }
52463 #endif
52464 
52465 
52466 
52467   public:
52468     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
52469     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {};
52470     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {};
52471     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
52472 
52473   };
52474   static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" );
52475   static_assert( std::is_standard_layout<ExternalImageFormatPropertiesNV>::value, "struct wrapper is not a standard layout!" );
52476 
52477   struct PhysicalDeviceExternalSemaphoreInfo
52478   {
52479     static const bool allowDuplicate = false;
52480     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
52481 
52482 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52483     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
52484     : handleType( handleType_ )
52485     {}
52486 
52487     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52488 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52489     PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52490       : PhysicalDeviceExternalSemaphoreInfo( *reinterpret_cast<PhysicalDeviceExternalSemaphoreInfo const *>( &rhs ) )
52491     {}
52492 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52493 
52494     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52495 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52496     PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
52497     {
52498       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const *>( &rhs );
52499       return *this;
52500     }
52501 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52502     PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52503     {
52504       pNext = pNext_;
52505       return *this;
52506     }
52507 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52508     PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
52509     {
52510       handleType = handleType_;
52511       return *this;
52512     }
52513 
52514 
operator VkPhysicalDeviceExternalSemaphoreInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52515     operator VkPhysicalDeviceExternalSemaphoreInfo const&() const VULKAN_HPP_NOEXCEPT
52516     {
52517       return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( this );
52518     }
52519 
operator VkPhysicalDeviceExternalSemaphoreInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52520     operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
52521     {
52522       return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>( this );
52523     }
52524 
52525 
52526 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52527     auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const& ) const = default;
52528 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52529     bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52530     {
52531       return ( sType == rhs.sType )
52532           && ( pNext == rhs.pNext )
52533           && ( handleType == rhs.handleType );
52534     }
52535 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo52536     bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
52537     {
52538       return !operator==( rhs );
52539     }
52540 #endif
52541 
52542 
52543 
52544   public:
52545     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
52546     const void* pNext = {};
52547     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
52548 
52549   };
52550   static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" );
52551   static_assert( std::is_standard_layout<PhysicalDeviceExternalSemaphoreInfo>::value, "struct wrapper is not a standard layout!" );
52552 
52553   template <>
52554   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalSemaphoreInfo>
52555   {
52556     using Type = PhysicalDeviceExternalSemaphoreInfo;
52557   };
52558   using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
52559 
52560   struct ExternalSemaphoreProperties
52561   {
52562     static const bool allowDuplicate = false;
52563     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties;
52564 
52565 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties52566     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {}) VULKAN_HPP_NOEXCEPT
52567     : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalSemaphoreFeatures( externalSemaphoreFeatures_ )
52568     {}
52569 
52570     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52571 
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties52572     ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52573       : ExternalSemaphoreProperties( *reinterpret_cast<ExternalSemaphoreProperties const *>( &rhs ) )
52574     {}
52575 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52576 
52577     VULKAN_HPP_CONSTEXPR_14 ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52578 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties52579     ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52580     {
52581       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const *>( &rhs );
52582       return *this;
52583     }
52584 
52585 
operator VkExternalSemaphoreProperties const&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties52586     operator VkExternalSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
52587     {
52588       return *reinterpret_cast<const VkExternalSemaphoreProperties*>( this );
52589     }
52590 
operator VkExternalSemaphoreProperties&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties52591     operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
52592     {
52593       return *reinterpret_cast<VkExternalSemaphoreProperties*>( this );
52594     }
52595 
52596 
52597 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52598     auto operator<=>( ExternalSemaphoreProperties const& ) const = default;
52599 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties52600     bool operator==( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52601     {
52602       return ( sType == rhs.sType )
52603           && ( pNext == rhs.pNext )
52604           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
52605           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
52606           && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
52607     }
52608 
operator !=VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties52609     bool operator!=( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52610     {
52611       return !operator==( rhs );
52612     }
52613 #endif
52614 
52615 
52616 
52617   public:
52618     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties;
52619     void* pNext = {};
52620     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {};
52621     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {};
52622     VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {};
52623 
52624   };
52625   static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" );
52626   static_assert( std::is_standard_layout<ExternalSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
52627 
52628   template <>
52629   struct CppType<StructureType, StructureType::eExternalSemaphoreProperties>
52630   {
52631     using Type = ExternalSemaphoreProperties;
52632   };
52633   using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
52634 
52635   struct PhysicalDeviceFeatures2
52636   {
52637     static const bool allowDuplicate = false;
52638     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2;
52639 
52640 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252641     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}) VULKAN_HPP_NOEXCEPT
52642     : features( features_ )
52643     {}
52644 
52645     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52646 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252647     PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
52648       : PhysicalDeviceFeatures2( *reinterpret_cast<PhysicalDeviceFeatures2 const *>( &rhs ) )
52649     {}
52650 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52651 
52652     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52653 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252654     PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
52655     {
52656       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const *>( &rhs );
52657       return *this;
52658     }
52659 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252660     PhysicalDeviceFeatures2 & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
52661     {
52662       pNext = pNext_;
52663       return *this;
52664     }
52665 
setFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252666     PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT
52667     {
52668       features = features_;
52669       return *this;
52670     }
52671 
52672 
operator VkPhysicalDeviceFeatures2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252673     operator VkPhysicalDeviceFeatures2 const&() const VULKAN_HPP_NOEXCEPT
52674     {
52675       return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>( this );
52676     }
52677 
operator VkPhysicalDeviceFeatures2&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252678     operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
52679     {
52680       return *reinterpret_cast<VkPhysicalDeviceFeatures2*>( this );
52681     }
52682 
52683 
52684 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52685     auto operator<=>( PhysicalDeviceFeatures2 const& ) const = default;
52686 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252687     bool operator==( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52688     {
52689       return ( sType == rhs.sType )
52690           && ( pNext == rhs.pNext )
52691           && ( features == rhs.features );
52692     }
52693 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252694     bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52695     {
52696       return !operator==( rhs );
52697     }
52698 #endif
52699 
52700 
52701 
52702   public:
52703     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
52704     void* pNext = {};
52705     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {};
52706 
52707   };
52708   static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" );
52709   static_assert( std::is_standard_layout<PhysicalDeviceFeatures2>::value, "struct wrapper is not a standard layout!" );
52710 
52711   template <>
52712   struct CppType<StructureType, StructureType::ePhysicalDeviceFeatures2>
52713   {
52714     using Type = PhysicalDeviceFeatures2;
52715   };
52716   using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
52717 
52718   struct FormatProperties
52719   {
52720 
52721 
52722 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties52723     VULKAN_HPP_CONSTEXPR FormatProperties(VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {}) VULKAN_HPP_NOEXCEPT
52724     : linearTilingFeatures( linearTilingFeatures_ ), optimalTilingFeatures( optimalTilingFeatures_ ), bufferFeatures( bufferFeatures_ )
52725     {}
52726 
52727     VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52728 
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties52729     FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52730       : FormatProperties( *reinterpret_cast<FormatProperties const *>( &rhs ) )
52731     {}
52732 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52733 
52734     VULKAN_HPP_CONSTEXPR_14 FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52735 
operator =VULKAN_HPP_NAMESPACE::FormatProperties52736     FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52737     {
52738       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties const *>( &rhs );
52739       return *this;
52740     }
52741 
52742 
operator VkFormatProperties const&VULKAN_HPP_NAMESPACE::FormatProperties52743     operator VkFormatProperties const&() const VULKAN_HPP_NOEXCEPT
52744     {
52745       return *reinterpret_cast<const VkFormatProperties*>( this );
52746     }
52747 
operator VkFormatProperties&VULKAN_HPP_NAMESPACE::FormatProperties52748     operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT
52749     {
52750       return *reinterpret_cast<VkFormatProperties*>( this );
52751     }
52752 
52753 
52754 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52755     auto operator<=>( FormatProperties const& ) const = default;
52756 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties52757     bool operator==( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52758     {
52759       return ( linearTilingFeatures == rhs.linearTilingFeatures )
52760           && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
52761           && ( bufferFeatures == rhs.bufferFeatures );
52762     }
52763 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties52764     bool operator!=( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52765     {
52766       return !operator==( rhs );
52767     }
52768 #endif
52769 
52770 
52771 
52772   public:
52773     VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {};
52774     VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {};
52775     VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {};
52776 
52777   };
52778   static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" );
52779   static_assert( std::is_standard_layout<FormatProperties>::value, "struct wrapper is not a standard layout!" );
52780 
52781   struct FormatProperties2
52782   {
52783     static const bool allowDuplicate = false;
52784     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2;
52785 
52786 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties252787     VULKAN_HPP_CONSTEXPR FormatProperties2(VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}) VULKAN_HPP_NOEXCEPT
52788     : formatProperties( formatProperties_ )
52789     {}
52790 
52791     VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52792 
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties252793     FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52794       : FormatProperties2( *reinterpret_cast<FormatProperties2 const *>( &rhs ) )
52795     {}
52796 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52797 
52798     VULKAN_HPP_CONSTEXPR_14 FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52799 
operator =VULKAN_HPP_NAMESPACE::FormatProperties252800     FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52801     {
52802       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties2 const *>( &rhs );
52803       return *this;
52804     }
52805 
52806 
operator VkFormatProperties2 const&VULKAN_HPP_NAMESPACE::FormatProperties252807     operator VkFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
52808     {
52809       return *reinterpret_cast<const VkFormatProperties2*>( this );
52810     }
52811 
operator VkFormatProperties2&VULKAN_HPP_NAMESPACE::FormatProperties252812     operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT
52813     {
52814       return *reinterpret_cast<VkFormatProperties2*>( this );
52815     }
52816 
52817 
52818 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52819     auto operator<=>( FormatProperties2 const& ) const = default;
52820 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties252821     bool operator==( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52822     {
52823       return ( sType == rhs.sType )
52824           && ( pNext == rhs.pNext )
52825           && ( formatProperties == rhs.formatProperties );
52826     }
52827 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties252828     bool operator!=( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52829     {
52830       return !operator==( rhs );
52831     }
52832 #endif
52833 
52834 
52835 
52836   public:
52837     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2;
52838     void* pNext = {};
52839     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {};
52840 
52841   };
52842   static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" );
52843   static_assert( std::is_standard_layout<FormatProperties2>::value, "struct wrapper is not a standard layout!" );
52844 
52845   template <>
52846   struct CppType<StructureType, StructureType::eFormatProperties2>
52847   {
52848     using Type = FormatProperties2;
52849   };
52850   using FormatProperties2KHR = FormatProperties2;
52851 
52852   struct PhysicalDeviceFragmentShadingRateKHR
52853   {
52854     static const bool allowDuplicate = false;
52855     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
52856 
52857 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52858     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}) VULKAN_HPP_NOEXCEPT
52859     : sampleCounts( sampleCounts_ ), fragmentSize( fragmentSize_ )
52860     {}
52861 
52862     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52863 
PhysicalDeviceFragmentShadingRateKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52864     PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52865       : PhysicalDeviceFragmentShadingRateKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRateKHR const *>( &rhs ) )
52866     {}
52867 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52868 
52869     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateKHR & operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52870 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52871     PhysicalDeviceFragmentShadingRateKHR & operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52872     {
52873       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR const *>( &rhs );
52874       return *this;
52875     }
52876 
52877 
operator VkPhysicalDeviceFragmentShadingRateKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52878     operator VkPhysicalDeviceFragmentShadingRateKHR const&() const VULKAN_HPP_NOEXCEPT
52879     {
52880       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateKHR*>( this );
52881     }
52882 
operator VkPhysicalDeviceFragmentShadingRateKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52883     operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT
52884     {
52885       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR*>( this );
52886     }
52887 
52888 
52889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52890     auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const& ) const = default;
52891 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52892     bool operator==( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
52893     {
52894       return ( sType == rhs.sType )
52895           && ( pNext == rhs.pNext )
52896           && ( sampleCounts == rhs.sampleCounts )
52897           && ( fragmentSize == rhs.fragmentSize );
52898     }
52899 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52900     bool operator!=( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
52901     {
52902       return !operator==( rhs );
52903     }
52904 #endif
52905 
52906 
52907 
52908   public:
52909     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
52910     void* pNext = {};
52911     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
52912     VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
52913 
52914   };
52915   static_assert( sizeof( PhysicalDeviceFragmentShadingRateKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateKHR ), "struct and wrapper have different size!" );
52916   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateKHR>::value, "struct wrapper is not a standard layout!" );
52917 
52918   template <>
52919   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateKHR>
52920   {
52921     using Type = PhysicalDeviceFragmentShadingRateKHR;
52922   };
52923 
52924   struct PhysicalDeviceImageFormatInfo2
52925   {
52926     static const bool allowDuplicate = false;
52927     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2;
52928 
52929 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252930     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
52931     : format( format_ ), type( type_ ), tiling( tiling_ ), usage( usage_ ), flags( flags_ )
52932     {}
52933 
52934     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52935 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252936     PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
52937       : PhysicalDeviceImageFormatInfo2( *reinterpret_cast<PhysicalDeviceImageFormatInfo2 const *>( &rhs ) )
52938     {}
52939 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52940 
52941     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52942 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252943     PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
52944     {
52945       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const *>( &rhs );
52946       return *this;
52947     }
52948 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252949     PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52950     {
52951       pNext = pNext_;
52952       return *this;
52953     }
52954 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252955     PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
52956     {
52957       format = format_;
52958       return *this;
52959     }
52960 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252961     PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
52962     {
52963       type = type_;
52964       return *this;
52965     }
52966 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252967     PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
52968     {
52969       tiling = tiling_;
52970       return *this;
52971     }
52972 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252973     PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
52974     {
52975       usage = usage_;
52976       return *this;
52977     }
52978 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252979     PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
52980     {
52981       flags = flags_;
52982       return *this;
52983     }
52984 
52985 
operator VkPhysicalDeviceImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252986     operator VkPhysicalDeviceImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
52987     {
52988       return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( this );
52989     }
52990 
operator VkPhysicalDeviceImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252991     operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
52992     {
52993       return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>( this );
52994     }
52995 
52996 
52997 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52998     auto operator<=>( PhysicalDeviceImageFormatInfo2 const& ) const = default;
52999 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253000     bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53001     {
53002       return ( sType == rhs.sType )
53003           && ( pNext == rhs.pNext )
53004           && ( format == rhs.format )
53005           && ( type == rhs.type )
53006           && ( tiling == rhs.tiling )
53007           && ( usage == rhs.usage )
53008           && ( flags == rhs.flags );
53009     }
53010 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo253011     bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53012     {
53013       return !operator==( rhs );
53014     }
53015 #endif
53016 
53017 
53018 
53019   public:
53020     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
53021     const void* pNext = {};
53022     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
53023     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
53024     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
53025     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
53026     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
53027 
53028   };
53029   static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" );
53030   static_assert( std::is_standard_layout<PhysicalDeviceImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
53031 
53032   template <>
53033   struct CppType<StructureType, StructureType::ePhysicalDeviceImageFormatInfo2>
53034   {
53035     using Type = PhysicalDeviceImageFormatInfo2;
53036   };
53037   using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
53038 
53039   struct ImageFormatProperties2
53040   {
53041     static const bool allowDuplicate = false;
53042     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2;
53043 
53044 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties253045     VULKAN_HPP_CONSTEXPR ImageFormatProperties2(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}) VULKAN_HPP_NOEXCEPT
53046     : imageFormatProperties( imageFormatProperties_ )
53047     {}
53048 
53049     VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53050 
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties253051     ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53052       : ImageFormatProperties2( *reinterpret_cast<ImageFormatProperties2 const *>( &rhs ) )
53053     {}
53054 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53055 
53056     VULKAN_HPP_CONSTEXPR_14 ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53057 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties253058     ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53059     {
53060       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const *>( &rhs );
53061       return *this;
53062     }
53063 
53064 
operator VkImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::ImageFormatProperties253065     operator VkImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
53066     {
53067       return *reinterpret_cast<const VkImageFormatProperties2*>( this );
53068     }
53069 
operator VkImageFormatProperties2&VULKAN_HPP_NAMESPACE::ImageFormatProperties253070     operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
53071     {
53072       return *reinterpret_cast<VkImageFormatProperties2*>( this );
53073     }
53074 
53075 
53076 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53077     auto operator<=>( ImageFormatProperties2 const& ) const = default;
53078 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties253079     bool operator==( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53080     {
53081       return ( sType == rhs.sType )
53082           && ( pNext == rhs.pNext )
53083           && ( imageFormatProperties == rhs.imageFormatProperties );
53084     }
53085 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties253086     bool operator!=( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53087     {
53088       return !operator==( rhs );
53089     }
53090 #endif
53091 
53092 
53093 
53094   public:
53095     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2;
53096     void* pNext = {};
53097     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
53098 
53099   };
53100   static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" );
53101   static_assert( std::is_standard_layout<ImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
53102 
53103   template <>
53104   struct CppType<StructureType, StructureType::eImageFormatProperties2>
53105   {
53106     using Type = ImageFormatProperties2;
53107   };
53108   using ImageFormatProperties2KHR = ImageFormatProperties2;
53109 
53110   struct MemoryType
53111   {
53112 
53113 
53114 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType53115     VULKAN_HPP_CONSTEXPR MemoryType(VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT
53116     : propertyFlags( propertyFlags_ ), heapIndex( heapIndex_ )
53117     {}
53118 
53119     VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53120 
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType53121     MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
53122       : MemoryType( *reinterpret_cast<MemoryType const *>( &rhs ) )
53123     {}
53124 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53125 
53126     VULKAN_HPP_CONSTEXPR_14 MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53127 
operator =VULKAN_HPP_NAMESPACE::MemoryType53128     MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
53129     {
53130       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryType const *>( &rhs );
53131       return *this;
53132     }
53133 
53134 
operator VkMemoryType const&VULKAN_HPP_NAMESPACE::MemoryType53135     operator VkMemoryType const&() const VULKAN_HPP_NOEXCEPT
53136     {
53137       return *reinterpret_cast<const VkMemoryType*>( this );
53138     }
53139 
operator VkMemoryType&VULKAN_HPP_NAMESPACE::MemoryType53140     operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
53141     {
53142       return *reinterpret_cast<VkMemoryType*>( this );
53143     }
53144 
53145 
53146 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53147     auto operator<=>( MemoryType const& ) const = default;
53148 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryType53149     bool operator==( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
53150     {
53151       return ( propertyFlags == rhs.propertyFlags )
53152           && ( heapIndex == rhs.heapIndex );
53153     }
53154 
operator !=VULKAN_HPP_NAMESPACE::MemoryType53155     bool operator!=( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
53156     {
53157       return !operator==( rhs );
53158     }
53159 #endif
53160 
53161 
53162 
53163   public:
53164     VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {};
53165     uint32_t heapIndex = {};
53166 
53167   };
53168   static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" );
53169   static_assert( std::is_standard_layout<MemoryType>::value, "struct wrapper is not a standard layout!" );
53170 
53171   struct MemoryHeap
53172   {
53173 
53174 
53175 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap53176     VULKAN_HPP_CONSTEXPR MemoryHeap(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
53177     : size( size_ ), flags( flags_ )
53178     {}
53179 
53180     VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53181 
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap53182     MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
53183       : MemoryHeap( *reinterpret_cast<MemoryHeap const *>( &rhs ) )
53184     {}
53185 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53186 
53187     VULKAN_HPP_CONSTEXPR_14 MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53188 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap53189     MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
53190     {
53191       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHeap const *>( &rhs );
53192       return *this;
53193     }
53194 
53195 
operator VkMemoryHeap const&VULKAN_HPP_NAMESPACE::MemoryHeap53196     operator VkMemoryHeap const&() const VULKAN_HPP_NOEXCEPT
53197     {
53198       return *reinterpret_cast<const VkMemoryHeap*>( this );
53199     }
53200 
operator VkMemoryHeap&VULKAN_HPP_NAMESPACE::MemoryHeap53201     operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
53202     {
53203       return *reinterpret_cast<VkMemoryHeap*>( this );
53204     }
53205 
53206 
53207 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53208     auto operator<=>( MemoryHeap const& ) const = default;
53209 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHeap53210     bool operator==( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
53211     {
53212       return ( size == rhs.size )
53213           && ( flags == rhs.flags );
53214     }
53215 
operator !=VULKAN_HPP_NAMESPACE::MemoryHeap53216     bool operator!=( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
53217     {
53218       return !operator==( rhs );
53219     }
53220 #endif
53221 
53222 
53223 
53224   public:
53225     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
53226     VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {};
53227 
53228   };
53229   static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" );
53230   static_assert( std::is_standard_layout<MemoryHeap>::value, "struct wrapper is not a standard layout!" );
53231 
53232   struct PhysicalDeviceMemoryProperties
53233   {
53234 
53235 
53236 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties53237     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
53238     : memoryTypeCount( memoryTypeCount_ ), memoryTypes( memoryTypes_ ), memoryHeapCount( memoryHeapCount_ ), memoryHeaps( memoryHeaps_ )
53239     {}
53240 
53241     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53242 
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties53243     PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53244       : PhysicalDeviceMemoryProperties( *reinterpret_cast<PhysicalDeviceMemoryProperties const *>( &rhs ) )
53245     {}
53246 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53247 
53248     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53249 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties53250     PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53251     {
53252       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const *>( &rhs );
53253       return *this;
53254     }
53255 
53256 
operator VkPhysicalDeviceMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties53257     operator VkPhysicalDeviceMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
53258     {
53259       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>( this );
53260     }
53261 
operator VkPhysicalDeviceMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties53262     operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
53263     {
53264       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( this );
53265     }
53266 
53267 
53268 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53269     auto operator<=>( PhysicalDeviceMemoryProperties const& ) const = default;
53270 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties53271     bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53272     {
53273       return ( memoryTypeCount == rhs.memoryTypeCount )
53274           && ( memoryTypes == rhs.memoryTypes )
53275           && ( memoryHeapCount == rhs.memoryHeapCount )
53276           && ( memoryHeaps == rhs.memoryHeaps );
53277     }
53278 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties53279     bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53280     {
53281       return !operator==( rhs );
53282     }
53283 #endif
53284 
53285 
53286 
53287   public:
53288     uint32_t memoryTypeCount = {};
53289     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> memoryTypes = {};
53290     uint32_t memoryHeapCount = {};
53291     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> memoryHeaps = {};
53292 
53293   };
53294   static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" );
53295   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties>::value, "struct wrapper is not a standard layout!" );
53296 
53297   struct PhysicalDeviceMemoryProperties2
53298   {
53299     static const bool allowDuplicate = false;
53300     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2;
53301 
53302 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties253303     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
53304     : memoryProperties( memoryProperties_ )
53305     {}
53306 
53307     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53308 
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties253309     PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53310       : PhysicalDeviceMemoryProperties2( *reinterpret_cast<PhysicalDeviceMemoryProperties2 const *>( &rhs ) )
53311     {}
53312 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53313 
53314     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53315 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties253316     PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53317     {
53318       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const *>( &rhs );
53319       return *this;
53320     }
53321 
53322 
operator VkPhysicalDeviceMemoryProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties253323     operator VkPhysicalDeviceMemoryProperties2 const&() const VULKAN_HPP_NOEXCEPT
53324     {
53325       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>( this );
53326     }
53327 
operator VkPhysicalDeviceMemoryProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties253328     operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
53329     {
53330       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( this );
53331     }
53332 
53333 
53334 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53335     auto operator<=>( PhysicalDeviceMemoryProperties2 const& ) const = default;
53336 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties253337     bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53338     {
53339       return ( sType == rhs.sType )
53340           && ( pNext == rhs.pNext )
53341           && ( memoryProperties == rhs.memoryProperties );
53342     }
53343 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties253344     bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53345     {
53346       return !operator==( rhs );
53347     }
53348 #endif
53349 
53350 
53351 
53352   public:
53353     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
53354     void* pNext = {};
53355     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {};
53356 
53357   };
53358   static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" );
53359   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties2>::value, "struct wrapper is not a standard layout!" );
53360 
53361   template <>
53362   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryProperties2>
53363   {
53364     using Type = PhysicalDeviceMemoryProperties2;
53365   };
53366   using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
53367 
53368   struct MultisamplePropertiesEXT
53369   {
53370     static const bool allowDuplicate = false;
53371     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT;
53372 
53373 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT53374     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}) VULKAN_HPP_NOEXCEPT
53375     : maxSampleLocationGridSize( maxSampleLocationGridSize_ )
53376     {}
53377 
53378     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53379 
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT53380     MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53381       : MultisamplePropertiesEXT( *reinterpret_cast<MultisamplePropertiesEXT const *>( &rhs ) )
53382     {}
53383 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53384 
53385     VULKAN_HPP_CONSTEXPR_14 MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53386 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT53387     MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53388     {
53389       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const *>( &rhs );
53390       return *this;
53391     }
53392 
53393 
operator VkMultisamplePropertiesEXT const&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT53394     operator VkMultisamplePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
53395     {
53396       return *reinterpret_cast<const VkMultisamplePropertiesEXT*>( this );
53397     }
53398 
operator VkMultisamplePropertiesEXT&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT53399     operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
53400     {
53401       return *reinterpret_cast<VkMultisamplePropertiesEXT*>( this );
53402     }
53403 
53404 
53405 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53406     auto operator<=>( MultisamplePropertiesEXT const& ) const = default;
53407 #else
operator ==VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT53408     bool operator==( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53409     {
53410       return ( sType == rhs.sType )
53411           && ( pNext == rhs.pNext )
53412           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
53413     }
53414 
operator !=VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT53415     bool operator!=( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53416     {
53417       return !operator==( rhs );
53418     }
53419 #endif
53420 
53421 
53422 
53423   public:
53424     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT;
53425     void* pNext = {};
53426     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
53427 
53428   };
53429   static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" );
53430   static_assert( std::is_standard_layout<MultisamplePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
53431 
53432   template <>
53433   struct CppType<StructureType, StructureType::eMultisamplePropertiesEXT>
53434   {
53435     using Type = MultisamplePropertiesEXT;
53436   };
53437 
53438   struct PhysicalDeviceLimits
53439   {
53440 
53441 
53442 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits53443     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
53444     : 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_ )
53445     {}
53446 
53447     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53448 
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits53449     PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
53450       : PhysicalDeviceLimits( *reinterpret_cast<PhysicalDeviceLimits const *>( &rhs ) )
53451     {}
53452 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53453 
53454     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53455 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits53456     PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
53457     {
53458       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const *>( &rhs );
53459       return *this;
53460     }
53461 
53462 
operator VkPhysicalDeviceLimits const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits53463     operator VkPhysicalDeviceLimits const&() const VULKAN_HPP_NOEXCEPT
53464     {
53465       return *reinterpret_cast<const VkPhysicalDeviceLimits*>( this );
53466     }
53467 
operator VkPhysicalDeviceLimits&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits53468     operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
53469     {
53470       return *reinterpret_cast<VkPhysicalDeviceLimits*>( this );
53471     }
53472 
53473 
53474 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53475     auto operator<=>( PhysicalDeviceLimits const& ) const = default;
53476 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits53477     bool operator==( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
53478     {
53479       return ( maxImageDimension1D == rhs.maxImageDimension1D )
53480           && ( maxImageDimension2D == rhs.maxImageDimension2D )
53481           && ( maxImageDimension3D == rhs.maxImageDimension3D )
53482           && ( maxImageDimensionCube == rhs.maxImageDimensionCube )
53483           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
53484           && ( maxTexelBufferElements == rhs.maxTexelBufferElements )
53485           && ( maxUniformBufferRange == rhs.maxUniformBufferRange )
53486           && ( maxStorageBufferRange == rhs.maxStorageBufferRange )
53487           && ( maxPushConstantsSize == rhs.maxPushConstantsSize )
53488           && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount )
53489           && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount )
53490           && ( bufferImageGranularity == rhs.bufferImageGranularity )
53491           && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize )
53492           && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets )
53493           && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers )
53494           && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers )
53495           && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers )
53496           && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages )
53497           && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages )
53498           && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments )
53499           && ( maxPerStageResources == rhs.maxPerStageResources )
53500           && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers )
53501           && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers )
53502           && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic )
53503           && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers )
53504           && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic )
53505           && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages )
53506           && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages )
53507           && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments )
53508           && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes )
53509           && ( maxVertexInputBindings == rhs.maxVertexInputBindings )
53510           && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset )
53511           && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride )
53512           && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents )
53513           && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel )
53514           && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize )
53515           && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents )
53516           && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents )
53517           && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents )
53518           && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents )
53519           && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents )
53520           && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents )
53521           && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations )
53522           && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents )
53523           && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents )
53524           && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices )
53525           && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents )
53526           && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents )
53527           && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments )
53528           && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments )
53529           && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources )
53530           && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize )
53531           && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount )
53532           && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations )
53533           && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize )
53534           && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits )
53535           && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits )
53536           && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits )
53537           && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue )
53538           && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount )
53539           && ( maxSamplerLodBias == rhs.maxSamplerLodBias )
53540           && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy )
53541           && ( maxViewports == rhs.maxViewports )
53542           && ( maxViewportDimensions == rhs.maxViewportDimensions )
53543           && ( viewportBoundsRange == rhs.viewportBoundsRange )
53544           && ( viewportSubPixelBits == rhs.viewportSubPixelBits )
53545           && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment )
53546           && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment )
53547           && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment )
53548           && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment )
53549           && ( minTexelOffset == rhs.minTexelOffset )
53550           && ( maxTexelOffset == rhs.maxTexelOffset )
53551           && ( minTexelGatherOffset == rhs.minTexelGatherOffset )
53552           && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset )
53553           && ( minInterpolationOffset == rhs.minInterpolationOffset )
53554           && ( maxInterpolationOffset == rhs.maxInterpolationOffset )
53555           && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits )
53556           && ( maxFramebufferWidth == rhs.maxFramebufferWidth )
53557           && ( maxFramebufferHeight == rhs.maxFramebufferHeight )
53558           && ( maxFramebufferLayers == rhs.maxFramebufferLayers )
53559           && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts )
53560           && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts )
53561           && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts )
53562           && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts )
53563           && ( maxColorAttachments == rhs.maxColorAttachments )
53564           && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts )
53565           && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts )
53566           && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts )
53567           && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts )
53568           && ( storageImageSampleCounts == rhs.storageImageSampleCounts )
53569           && ( maxSampleMaskWords == rhs.maxSampleMaskWords )
53570           && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics )
53571           && ( timestampPeriod == rhs.timestampPeriod )
53572           && ( maxClipDistances == rhs.maxClipDistances )
53573           && ( maxCullDistances == rhs.maxCullDistances )
53574           && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances )
53575           && ( discreteQueuePriorities == rhs.discreteQueuePriorities )
53576           && ( pointSizeRange == rhs.pointSizeRange )
53577           && ( lineWidthRange == rhs.lineWidthRange )
53578           && ( pointSizeGranularity == rhs.pointSizeGranularity )
53579           && ( lineWidthGranularity == rhs.lineWidthGranularity )
53580           && ( strictLines == rhs.strictLines )
53581           && ( standardSampleLocations == rhs.standardSampleLocations )
53582           && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment )
53583           && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment )
53584           && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
53585     }
53586 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits53587     bool operator!=( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
53588     {
53589       return !operator==( rhs );
53590     }
53591 #endif
53592 
53593 
53594 
53595   public:
53596     uint32_t maxImageDimension1D = {};
53597     uint32_t maxImageDimension2D = {};
53598     uint32_t maxImageDimension3D = {};
53599     uint32_t maxImageDimensionCube = {};
53600     uint32_t maxImageArrayLayers = {};
53601     uint32_t maxTexelBufferElements = {};
53602     uint32_t maxUniformBufferRange = {};
53603     uint32_t maxStorageBufferRange = {};
53604     uint32_t maxPushConstantsSize = {};
53605     uint32_t maxMemoryAllocationCount = {};
53606     uint32_t maxSamplerAllocationCount = {};
53607     VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {};
53608     VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {};
53609     uint32_t maxBoundDescriptorSets = {};
53610     uint32_t maxPerStageDescriptorSamplers = {};
53611     uint32_t maxPerStageDescriptorUniformBuffers = {};
53612     uint32_t maxPerStageDescriptorStorageBuffers = {};
53613     uint32_t maxPerStageDescriptorSampledImages = {};
53614     uint32_t maxPerStageDescriptorStorageImages = {};
53615     uint32_t maxPerStageDescriptorInputAttachments = {};
53616     uint32_t maxPerStageResources = {};
53617     uint32_t maxDescriptorSetSamplers = {};
53618     uint32_t maxDescriptorSetUniformBuffers = {};
53619     uint32_t maxDescriptorSetUniformBuffersDynamic = {};
53620     uint32_t maxDescriptorSetStorageBuffers = {};
53621     uint32_t maxDescriptorSetStorageBuffersDynamic = {};
53622     uint32_t maxDescriptorSetSampledImages = {};
53623     uint32_t maxDescriptorSetStorageImages = {};
53624     uint32_t maxDescriptorSetInputAttachments = {};
53625     uint32_t maxVertexInputAttributes = {};
53626     uint32_t maxVertexInputBindings = {};
53627     uint32_t maxVertexInputAttributeOffset = {};
53628     uint32_t maxVertexInputBindingStride = {};
53629     uint32_t maxVertexOutputComponents = {};
53630     uint32_t maxTessellationGenerationLevel = {};
53631     uint32_t maxTessellationPatchSize = {};
53632     uint32_t maxTessellationControlPerVertexInputComponents = {};
53633     uint32_t maxTessellationControlPerVertexOutputComponents = {};
53634     uint32_t maxTessellationControlPerPatchOutputComponents = {};
53635     uint32_t maxTessellationControlTotalOutputComponents = {};
53636     uint32_t maxTessellationEvaluationInputComponents = {};
53637     uint32_t maxTessellationEvaluationOutputComponents = {};
53638     uint32_t maxGeometryShaderInvocations = {};
53639     uint32_t maxGeometryInputComponents = {};
53640     uint32_t maxGeometryOutputComponents = {};
53641     uint32_t maxGeometryOutputVertices = {};
53642     uint32_t maxGeometryTotalOutputComponents = {};
53643     uint32_t maxFragmentInputComponents = {};
53644     uint32_t maxFragmentOutputAttachments = {};
53645     uint32_t maxFragmentDualSrcAttachments = {};
53646     uint32_t maxFragmentCombinedOutputResources = {};
53647     uint32_t maxComputeSharedMemorySize = {};
53648     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupCount = {};
53649     uint32_t maxComputeWorkGroupInvocations = {};
53650     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupSize = {};
53651     uint32_t subPixelPrecisionBits = {};
53652     uint32_t subTexelPrecisionBits = {};
53653     uint32_t mipmapPrecisionBits = {};
53654     uint32_t maxDrawIndexedIndexValue = {};
53655     uint32_t maxDrawIndirectCount = {};
53656     float maxSamplerLodBias = {};
53657     float maxSamplerAnisotropy = {};
53658     uint32_t maxViewports = {};
53659     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> maxViewportDimensions = {};
53660     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> viewportBoundsRange = {};
53661     uint32_t viewportSubPixelBits = {};
53662     size_t minMemoryMapAlignment = {};
53663     VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {};
53664     VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {};
53665     VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {};
53666     int32_t minTexelOffset = {};
53667     uint32_t maxTexelOffset = {};
53668     int32_t minTexelGatherOffset = {};
53669     uint32_t maxTexelGatherOffset = {};
53670     float minInterpolationOffset = {};
53671     float maxInterpolationOffset = {};
53672     uint32_t subPixelInterpolationOffsetBits = {};
53673     uint32_t maxFramebufferWidth = {};
53674     uint32_t maxFramebufferHeight = {};
53675     uint32_t maxFramebufferLayers = {};
53676     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {};
53677     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {};
53678     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {};
53679     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {};
53680     uint32_t maxColorAttachments = {};
53681     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {};
53682     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {};
53683     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {};
53684     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {};
53685     VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {};
53686     uint32_t maxSampleMaskWords = {};
53687     VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {};
53688     float timestampPeriod = {};
53689     uint32_t maxClipDistances = {};
53690     uint32_t maxCullDistances = {};
53691     uint32_t maxCombinedClipAndCullDistances = {};
53692     uint32_t discreteQueuePriorities = {};
53693     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> pointSizeRange = {};
53694     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> lineWidthRange = {};
53695     float pointSizeGranularity = {};
53696     float lineWidthGranularity = {};
53697     VULKAN_HPP_NAMESPACE::Bool32 strictLines = {};
53698     VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {};
53699     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {};
53700     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {};
53701     VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {};
53702 
53703   };
53704   static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" );
53705   static_assert( std::is_standard_layout<PhysicalDeviceLimits>::value, "struct wrapper is not a standard layout!" );
53706 
53707   struct PhysicalDeviceSparseProperties
53708   {
53709 
53710 
53711 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53712     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
53713     : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ), residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ), residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ), residencyAlignedMipSize( residencyAlignedMipSize_ ), residencyNonResidentStrict( residencyNonResidentStrict_ )
53714     {}
53715 
53716     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53717 
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53718     PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53719       : PhysicalDeviceSparseProperties( *reinterpret_cast<PhysicalDeviceSparseProperties const *>( &rhs ) )
53720     {}
53721 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53722 
53723     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53724 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53725     PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53726     {
53727       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const *>( &rhs );
53728       return *this;
53729     }
53730 
53731 
operator VkPhysicalDeviceSparseProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53732     operator VkPhysicalDeviceSparseProperties const&() const VULKAN_HPP_NOEXCEPT
53733     {
53734       return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>( this );
53735     }
53736 
operator VkPhysicalDeviceSparseProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53737     operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
53738     {
53739       return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>( this );
53740     }
53741 
53742 
53743 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53744     auto operator<=>( PhysicalDeviceSparseProperties const& ) const = default;
53745 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53746     bool operator==( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53747     {
53748       return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape )
53749           && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape )
53750           && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape )
53751           && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize )
53752           && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
53753     }
53754 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53755     bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53756     {
53757       return !operator==( rhs );
53758     }
53759 #endif
53760 
53761 
53762 
53763   public:
53764     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {};
53765     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {};
53766     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {};
53767     VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {};
53768     VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {};
53769 
53770   };
53771   static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" );
53772   static_assert( std::is_standard_layout<PhysicalDeviceSparseProperties>::value, "struct wrapper is not a standard layout!" );
53773 
53774   struct PhysicalDeviceProperties
53775   {
53776 
53777 
53778 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53779     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
53780     : apiVersion( apiVersion_ ), driverVersion( driverVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), deviceType( deviceType_ ), deviceName( deviceName_ ), pipelineCacheUUID( pipelineCacheUUID_ ), limits( limits_ ), sparseProperties( sparseProperties_ )
53781     {}
53782 
53783     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53784 
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53785     PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53786       : PhysicalDeviceProperties( *reinterpret_cast<PhysicalDeviceProperties const *>( &rhs ) )
53787     {}
53788 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53789 
53790     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53791 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53792     PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53793     {
53794       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const *>( &rhs );
53795       return *this;
53796     }
53797 
53798 
operator VkPhysicalDeviceProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53799     operator VkPhysicalDeviceProperties const&() const VULKAN_HPP_NOEXCEPT
53800     {
53801       return *reinterpret_cast<const VkPhysicalDeviceProperties*>( this );
53802     }
53803 
operator VkPhysicalDeviceProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53804     operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
53805     {
53806       return *reinterpret_cast<VkPhysicalDeviceProperties*>( this );
53807     }
53808 
53809 
53810 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53811     auto operator<=>( PhysicalDeviceProperties const& ) const = default;
53812 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53813     bool operator==( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53814     {
53815       return ( apiVersion == rhs.apiVersion )
53816           && ( driverVersion == rhs.driverVersion )
53817           && ( vendorID == rhs.vendorID )
53818           && ( deviceID == rhs.deviceID )
53819           && ( deviceType == rhs.deviceType )
53820           && ( deviceName == rhs.deviceName )
53821           && ( pipelineCacheUUID == rhs.pipelineCacheUUID )
53822           && ( limits == rhs.limits )
53823           && ( sparseProperties == rhs.sparseProperties );
53824     }
53825 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53826     bool operator!=( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53827     {
53828       return !operator==( rhs );
53829     }
53830 #endif
53831 
53832 
53833 
53834   public:
53835     uint32_t apiVersion = {};
53836     uint32_t driverVersion = {};
53837     uint32_t vendorID = {};
53838     uint32_t deviceID = {};
53839     VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther;
53840     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> deviceName = {};
53841     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
53842     VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {};
53843     VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {};
53844 
53845   };
53846   static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" );
53847   static_assert( std::is_standard_layout<PhysicalDeviceProperties>::value, "struct wrapper is not a standard layout!" );
53848 
53849   struct PhysicalDeviceProperties2
53850   {
53851     static const bool allowDuplicate = false;
53852     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2;
53853 
53854 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253855     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {}) VULKAN_HPP_NOEXCEPT
53856     : properties( properties_ )
53857     {}
53858 
53859     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53860 
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253861     PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53862       : PhysicalDeviceProperties2( *reinterpret_cast<PhysicalDeviceProperties2 const *>( &rhs ) )
53863     {}
53864 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53865 
53866     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53867 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253868     PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53869     {
53870       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const *>( &rhs );
53871       return *this;
53872     }
53873 
53874 
operator VkPhysicalDeviceProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253875     operator VkPhysicalDeviceProperties2 const&() const VULKAN_HPP_NOEXCEPT
53876     {
53877       return *reinterpret_cast<const VkPhysicalDeviceProperties2*>( this );
53878     }
53879 
operator VkPhysicalDeviceProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253880     operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
53881     {
53882       return *reinterpret_cast<VkPhysicalDeviceProperties2*>( this );
53883     }
53884 
53885 
53886 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53887     auto operator<=>( PhysicalDeviceProperties2 const& ) const = default;
53888 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253889     bool operator==( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53890     {
53891       return ( sType == rhs.sType )
53892           && ( pNext == rhs.pNext )
53893           && ( properties == rhs.properties );
53894     }
53895 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253896     bool operator!=( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53897     {
53898       return !operator==( rhs );
53899     }
53900 #endif
53901 
53902 
53903 
53904   public:
53905     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2;
53906     void* pNext = {};
53907     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {};
53908 
53909   };
53910   static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" );
53911   static_assert( std::is_standard_layout<PhysicalDeviceProperties2>::value, "struct wrapper is not a standard layout!" );
53912 
53913   template <>
53914   struct CppType<StructureType, StructureType::ePhysicalDeviceProperties2>
53915   {
53916     using Type = PhysicalDeviceProperties2;
53917   };
53918   using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
53919 
53920   struct QueryPoolPerformanceCreateInfoKHR
53921   {
53922     static const bool allowDuplicate = false;
53923     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
53924 
53925 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53926     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR(uint32_t queueFamilyIndex_ = {}, uint32_t counterIndexCount_ = {}, const uint32_t* pCounterIndices_ = {}) VULKAN_HPP_NOEXCEPT
53927     : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( counterIndexCount_ ), pCounterIndices( pCounterIndices_ )
53928     {}
53929 
53930     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53931 
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53932     QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53933       : QueryPoolPerformanceCreateInfoKHR( *reinterpret_cast<QueryPoolPerformanceCreateInfoKHR const *>( &rhs ) )
53934     {}
53935 
53936 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53937     QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ )
53938     : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( static_cast<uint32_t>( counterIndices_.size() ) ), pCounterIndices( counterIndices_.data() )
53939     {}
53940 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
53941 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53942 
53943     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53944 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53945     QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53946     {
53947       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const *>( &rhs );
53948       return *this;
53949     }
53950 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53951     QueryPoolPerformanceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
53952     {
53953       pNext = pNext_;
53954       return *this;
53955     }
53956 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53957     QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
53958     {
53959       queueFamilyIndex = queueFamilyIndex_;
53960       return *this;
53961     }
53962 
setCounterIndexCountVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53963     QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT
53964     {
53965       counterIndexCount = counterIndexCount_;
53966       return *this;
53967     }
53968 
setPCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53969     QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t* pCounterIndices_ ) VULKAN_HPP_NOEXCEPT
53970     {
53971       pCounterIndices = pCounterIndices_;
53972       return *this;
53973     }
53974 
53975 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53976     QueryPoolPerformanceCreateInfoKHR & setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ ) VULKAN_HPP_NOEXCEPT
53977     {
53978       counterIndexCount = static_cast<uint32_t>( counterIndices_.size() );
53979       pCounterIndices = counterIndices_.data();
53980       return *this;
53981     }
53982 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
53983 
53984 
operator VkQueryPoolPerformanceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53985     operator VkQueryPoolPerformanceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
53986     {
53987       return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( this );
53988     }
53989 
operator VkQueryPoolPerformanceCreateInfoKHR&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53990     operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
53991     {
53992       return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>( this );
53993     }
53994 
53995 
53996 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53997     auto operator<=>( QueryPoolPerformanceCreateInfoKHR const& ) const = default;
53998 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53999     bool operator==( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54000     {
54001       return ( sType == rhs.sType )
54002           && ( pNext == rhs.pNext )
54003           && ( queueFamilyIndex == rhs.queueFamilyIndex )
54004           && ( counterIndexCount == rhs.counterIndexCount )
54005           && ( pCounterIndices == rhs.pCounterIndices );
54006     }
54007 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR54008     bool operator!=( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54009     {
54010       return !operator==( rhs );
54011     }
54012 #endif
54013 
54014 
54015 
54016   public:
54017     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
54018     const void* pNext = {};
54019     uint32_t queueFamilyIndex = {};
54020     uint32_t counterIndexCount = {};
54021     const uint32_t* pCounterIndices = {};
54022 
54023   };
54024   static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), "struct and wrapper have different size!" );
54025   static_assert( std::is_standard_layout<QueryPoolPerformanceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
54026 
54027   template <>
54028   struct CppType<StructureType, StructureType::eQueryPoolPerformanceCreateInfoKHR>
54029   {
54030     using Type = QueryPoolPerformanceCreateInfoKHR;
54031   };
54032 
54033   struct QueueFamilyProperties
54034   {
54035 
54036 
54037 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties54038     VULKAN_HPP_CONSTEXPR QueueFamilyProperties(VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, uint32_t queueCount_ = {}, uint32_t timestampValidBits_ = {}, VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {}) VULKAN_HPP_NOEXCEPT
54039     : queueFlags( queueFlags_ ), queueCount( queueCount_ ), timestampValidBits( timestampValidBits_ ), minImageTransferGranularity( minImageTransferGranularity_ )
54040     {}
54041 
54042     VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54043 
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties54044     QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
54045       : QueueFamilyProperties( *reinterpret_cast<QueueFamilyProperties const *>( &rhs ) )
54046     {}
54047 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54048 
54049     VULKAN_HPP_CONSTEXPR_14 QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54050 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties54051     QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
54052     {
54053       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties const *>( &rhs );
54054       return *this;
54055     }
54056 
54057 
operator VkQueueFamilyProperties const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties54058     operator VkQueueFamilyProperties const&() const VULKAN_HPP_NOEXCEPT
54059     {
54060       return *reinterpret_cast<const VkQueueFamilyProperties*>( this );
54061     }
54062 
operator VkQueueFamilyProperties&VULKAN_HPP_NAMESPACE::QueueFamilyProperties54063     operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
54064     {
54065       return *reinterpret_cast<VkQueueFamilyProperties*>( this );
54066     }
54067 
54068 
54069 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54070     auto operator<=>( QueueFamilyProperties const& ) const = default;
54071 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties54072     bool operator==( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
54073     {
54074       return ( queueFlags == rhs.queueFlags )
54075           && ( queueCount == rhs.queueCount )
54076           && ( timestampValidBits == rhs.timestampValidBits )
54077           && ( minImageTransferGranularity == rhs.minImageTransferGranularity );
54078     }
54079 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties54080     bool operator!=( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
54081     {
54082       return !operator==( rhs );
54083     }
54084 #endif
54085 
54086 
54087 
54088   public:
54089     VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {};
54090     uint32_t queueCount = {};
54091     uint32_t timestampValidBits = {};
54092     VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {};
54093 
54094   };
54095   static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" );
54096   static_assert( std::is_standard_layout<QueueFamilyProperties>::value, "struct wrapper is not a standard layout!" );
54097 
54098   struct QueueFamilyProperties2
54099   {
54100     static const bool allowDuplicate = false;
54101     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2;
54102 
54103 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties254104     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2(VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {}) VULKAN_HPP_NOEXCEPT
54105     : queueFamilyProperties( queueFamilyProperties_ )
54106     {}
54107 
54108     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54109 
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties254110     QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
54111       : QueueFamilyProperties2( *reinterpret_cast<QueueFamilyProperties2 const *>( &rhs ) )
54112     {}
54113 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54114 
54115     VULKAN_HPP_CONSTEXPR_14 QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54116 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties254117     QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
54118     {
54119       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const *>( &rhs );
54120       return *this;
54121     }
54122 
54123 
operator VkQueueFamilyProperties2 const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties254124     operator VkQueueFamilyProperties2 const&() const VULKAN_HPP_NOEXCEPT
54125     {
54126       return *reinterpret_cast<const VkQueueFamilyProperties2*>( this );
54127     }
54128 
operator VkQueueFamilyProperties2&VULKAN_HPP_NAMESPACE::QueueFamilyProperties254129     operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
54130     {
54131       return *reinterpret_cast<VkQueueFamilyProperties2*>( this );
54132     }
54133 
54134 
54135 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54136     auto operator<=>( QueueFamilyProperties2 const& ) const = default;
54137 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties254138     bool operator==( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
54139     {
54140       return ( sType == rhs.sType )
54141           && ( pNext == rhs.pNext )
54142           && ( queueFamilyProperties == rhs.queueFamilyProperties );
54143     }
54144 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties254145     bool operator!=( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
54146     {
54147       return !operator==( rhs );
54148     }
54149 #endif
54150 
54151 
54152 
54153   public:
54154     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2;
54155     void* pNext = {};
54156     VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {};
54157 
54158   };
54159   static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" );
54160   static_assert( std::is_standard_layout<QueueFamilyProperties2>::value, "struct wrapper is not a standard layout!" );
54161 
54162   template <>
54163   struct CppType<StructureType, StructureType::eQueueFamilyProperties2>
54164   {
54165     using Type = QueueFamilyProperties2;
54166   };
54167   using QueueFamilyProperties2KHR = QueueFamilyProperties2;
54168 
54169   struct PhysicalDeviceSparseImageFormatInfo2
54170   {
54171     static const bool allowDuplicate = false;
54172     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
54173 
54174 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254175     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
54176     : format( format_ ), type( type_ ), samples( samples_ ), usage( usage_ ), tiling( tiling_ )
54177     {}
54178 
54179     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54180 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254181     PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
54182       : PhysicalDeviceSparseImageFormatInfo2( *reinterpret_cast<PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs ) )
54183     {}
54184 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54185 
54186     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54187 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254188     PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
54189     {
54190       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs );
54191       return *this;
54192     }
54193 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254194     PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
54195     {
54196       pNext = pNext_;
54197       return *this;
54198     }
54199 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254200     PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
54201     {
54202       format = format_;
54203       return *this;
54204     }
54205 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254206     PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
54207     {
54208       type = type_;
54209       return *this;
54210     }
54211 
setSamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254212     PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
54213     {
54214       samples = samples_;
54215       return *this;
54216     }
54217 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254218     PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
54219     {
54220       usage = usage_;
54221       return *this;
54222     }
54223 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254224     PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
54225     {
54226       tiling = tiling_;
54227       return *this;
54228     }
54229 
54230 
operator VkPhysicalDeviceSparseImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254231     operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
54232     {
54233       return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( this );
54234     }
54235 
operator VkPhysicalDeviceSparseImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254236     operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
54237     {
54238       return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>( this );
54239     }
54240 
54241 
54242 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54243     auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const& ) const = default;
54244 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254245     bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
54246     {
54247       return ( sType == rhs.sType )
54248           && ( pNext == rhs.pNext )
54249           && ( format == rhs.format )
54250           && ( type == rhs.type )
54251           && ( samples == rhs.samples )
54252           && ( usage == rhs.usage )
54253           && ( tiling == rhs.tiling );
54254     }
54255 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo254256     bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
54257     {
54258       return !operator==( rhs );
54259     }
54260 #endif
54261 
54262 
54263 
54264   public:
54265     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
54266     const void* pNext = {};
54267     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
54268     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
54269     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
54270     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
54271     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
54272 
54273   };
54274   static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" );
54275   static_assert( std::is_standard_layout<PhysicalDeviceSparseImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
54276 
54277   template <>
54278   struct CppType<StructureType, StructureType::ePhysicalDeviceSparseImageFormatInfo2>
54279   {
54280     using Type = PhysicalDeviceSparseImageFormatInfo2;
54281   };
54282   using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
54283 
54284   struct SparseImageFormatProperties2
54285   {
54286     static const bool allowDuplicate = false;
54287     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2;
54288 
54289 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties254290     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {}) VULKAN_HPP_NOEXCEPT
54291     : properties( properties_ )
54292     {}
54293 
54294     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54295 
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties254296     SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
54297       : SparseImageFormatProperties2( *reinterpret_cast<SparseImageFormatProperties2 const *>( &rhs ) )
54298     {}
54299 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54300 
54301     VULKAN_HPP_CONSTEXPR_14 SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54302 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties254303     SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
54304     {
54305       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const *>( &rhs );
54306       return *this;
54307     }
54308 
54309 
operator VkSparseImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties254310     operator VkSparseImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
54311     {
54312       return *reinterpret_cast<const VkSparseImageFormatProperties2*>( this );
54313     }
54314 
operator VkSparseImageFormatProperties2&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties254315     operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
54316     {
54317       return *reinterpret_cast<VkSparseImageFormatProperties2*>( this );
54318     }
54319 
54320 
54321 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54322     auto operator<=>( SparseImageFormatProperties2 const& ) const = default;
54323 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties254324     bool operator==( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
54325     {
54326       return ( sType == rhs.sType )
54327           && ( pNext == rhs.pNext )
54328           && ( properties == rhs.properties );
54329     }
54330 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties254331     bool operator!=( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
54332     {
54333       return !operator==( rhs );
54334     }
54335 #endif
54336 
54337 
54338 
54339   public:
54340     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2;
54341     void* pNext = {};
54342     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {};
54343 
54344   };
54345   static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" );
54346   static_assert( std::is_standard_layout<SparseImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
54347 
54348   template <>
54349   struct CppType<StructureType, StructureType::eSparseImageFormatProperties2>
54350   {
54351     using Type = SparseImageFormatProperties2;
54352   };
54353   using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
54354 
54355   struct FramebufferMixedSamplesCombinationNV
54356   {
54357     static const bool allowDuplicate = false;
54358     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV;
54359 
54360 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV54361     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
54362     : coverageReductionMode( coverageReductionMode_ ), rasterizationSamples( rasterizationSamples_ ), depthStencilSamples( depthStencilSamples_ ), colorSamples( colorSamples_ )
54363     {}
54364 
54365     VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54366 
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV54367     FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
54368       : FramebufferMixedSamplesCombinationNV( *reinterpret_cast<FramebufferMixedSamplesCombinationNV const *>( &rhs ) )
54369     {}
54370 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54371 
54372     VULKAN_HPP_CONSTEXPR_14 FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54373 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV54374     FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
54375     {
54376       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const *>( &rhs );
54377       return *this;
54378     }
54379 
54380 
operator VkFramebufferMixedSamplesCombinationNV const&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV54381     operator VkFramebufferMixedSamplesCombinationNV const&() const VULKAN_HPP_NOEXCEPT
54382     {
54383       return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV*>( this );
54384     }
54385 
operator VkFramebufferMixedSamplesCombinationNV&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV54386     operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT
54387     {
54388       return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( this );
54389     }
54390 
54391 
54392 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54393     auto operator<=>( FramebufferMixedSamplesCombinationNV const& ) const = default;
54394 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV54395     bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
54396     {
54397       return ( sType == rhs.sType )
54398           && ( pNext == rhs.pNext )
54399           && ( coverageReductionMode == rhs.coverageReductionMode )
54400           && ( rasterizationSamples == rhs.rasterizationSamples )
54401           && ( depthStencilSamples == rhs.depthStencilSamples )
54402           && ( colorSamples == rhs.colorSamples );
54403     }
54404 
operator !=VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV54405     bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
54406     {
54407       return !operator==( rhs );
54408     }
54409 #endif
54410 
54411 
54412 
54413   public:
54414     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
54415     void* pNext = {};
54416     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
54417     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
54418     VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {};
54419     VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {};
54420 
54421   };
54422   static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" );
54423   static_assert( std::is_standard_layout<FramebufferMixedSamplesCombinationNV>::value, "struct wrapper is not a standard layout!" );
54424 
54425   template <>
54426   struct CppType<StructureType, StructureType::eFramebufferMixedSamplesCombinationNV>
54427   {
54428     using Type = FramebufferMixedSamplesCombinationNV;
54429   };
54430 
54431   struct SurfaceCapabilities2EXT
54432   {
54433     static const bool allowDuplicate = false;
54434     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT;
54435 
54436 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT54437     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
54438     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ), supportedSurfaceCounters( supportedSurfaceCounters_ )
54439     {}
54440 
54441     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54442 
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT54443     SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
54444       : SurfaceCapabilities2EXT( *reinterpret_cast<SurfaceCapabilities2EXT const *>( &rhs ) )
54445     {}
54446 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54447 
54448     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54449 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT54450     SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
54451     {
54452       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const *>( &rhs );
54453       return *this;
54454     }
54455 
54456 
operator VkSurfaceCapabilities2EXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT54457     operator VkSurfaceCapabilities2EXT const&() const VULKAN_HPP_NOEXCEPT
54458     {
54459       return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>( this );
54460     }
54461 
operator VkSurfaceCapabilities2EXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT54462     operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
54463     {
54464       return *reinterpret_cast<VkSurfaceCapabilities2EXT*>( this );
54465     }
54466 
54467 
54468 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54469     auto operator<=>( SurfaceCapabilities2EXT const& ) const = default;
54470 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT54471     bool operator==( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54472     {
54473       return ( sType == rhs.sType )
54474           && ( pNext == rhs.pNext )
54475           && ( minImageCount == rhs.minImageCount )
54476           && ( maxImageCount == rhs.maxImageCount )
54477           && ( currentExtent == rhs.currentExtent )
54478           && ( minImageExtent == rhs.minImageExtent )
54479           && ( maxImageExtent == rhs.maxImageExtent )
54480           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
54481           && ( supportedTransforms == rhs.supportedTransforms )
54482           && ( currentTransform == rhs.currentTransform )
54483           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
54484           && ( supportedUsageFlags == rhs.supportedUsageFlags )
54485           && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
54486     }
54487 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT54488     bool operator!=( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54489     {
54490       return !operator==( rhs );
54491     }
54492 #endif
54493 
54494 
54495 
54496   public:
54497     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
54498     void* pNext = {};
54499     uint32_t minImageCount = {};
54500     uint32_t maxImageCount = {};
54501     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
54502     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
54503     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
54504     uint32_t maxImageArrayLayers = {};
54505     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
54506     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
54507     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
54508     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
54509     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {};
54510 
54511   };
54512   static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" );
54513   static_assert( std::is_standard_layout<SurfaceCapabilities2EXT>::value, "struct wrapper is not a standard layout!" );
54514 
54515   template <>
54516   struct CppType<StructureType, StructureType::eSurfaceCapabilities2EXT>
54517   {
54518     using Type = SurfaceCapabilities2EXT;
54519   };
54520 
54521   struct SurfaceCapabilitiesKHR
54522   {
54523 
54524 
54525 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR54526     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
54527     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ )
54528     {}
54529 
54530     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54531 
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR54532     SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54533       : SurfaceCapabilitiesKHR( *reinterpret_cast<SurfaceCapabilitiesKHR const *>( &rhs ) )
54534     {}
54535 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54536 
54537     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54538 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR54539     SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54540     {
54541       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const *>( &rhs );
54542       return *this;
54543     }
54544 
54545 
operator VkSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR54546     operator VkSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
54547     {
54548       return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>( this );
54549     }
54550 
operator VkSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR54551     operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
54552     {
54553       return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>( this );
54554     }
54555 
54556 
54557 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54558     auto operator<=>( SurfaceCapabilitiesKHR const& ) const = default;
54559 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR54560     bool operator==( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54561     {
54562       return ( minImageCount == rhs.minImageCount )
54563           && ( maxImageCount == rhs.maxImageCount )
54564           && ( currentExtent == rhs.currentExtent )
54565           && ( minImageExtent == rhs.minImageExtent )
54566           && ( maxImageExtent == rhs.maxImageExtent )
54567           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
54568           && ( supportedTransforms == rhs.supportedTransforms )
54569           && ( currentTransform == rhs.currentTransform )
54570           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
54571           && ( supportedUsageFlags == rhs.supportedUsageFlags );
54572     }
54573 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR54574     bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54575     {
54576       return !operator==( rhs );
54577     }
54578 #endif
54579 
54580 
54581 
54582   public:
54583     uint32_t minImageCount = {};
54584     uint32_t maxImageCount = {};
54585     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
54586     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
54587     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
54588     uint32_t maxImageArrayLayers = {};
54589     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
54590     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
54591     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
54592     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
54593 
54594   };
54595   static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
54596   static_assert( std::is_standard_layout<SurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
54597 
54598   struct SurfaceCapabilities2KHR
54599   {
54600     static const bool allowDuplicate = false;
54601     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR;
54602 
54603 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54604     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {}) VULKAN_HPP_NOEXCEPT
54605     : surfaceCapabilities( surfaceCapabilities_ )
54606     {}
54607 
54608     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54609 
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54610     SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54611       : SurfaceCapabilities2KHR( *reinterpret_cast<SurfaceCapabilities2KHR const *>( &rhs ) )
54612     {}
54613 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54614 
54615     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54616 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54617     SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54618     {
54619       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const *>( &rhs );
54620       return *this;
54621     }
54622 
54623 
operator VkSurfaceCapabilities2KHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54624     operator VkSurfaceCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
54625     {
54626       return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>( this );
54627     }
54628 
operator VkSurfaceCapabilities2KHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54629     operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
54630     {
54631       return *reinterpret_cast<VkSurfaceCapabilities2KHR*>( this );
54632     }
54633 
54634 
54635 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54636     auto operator<=>( SurfaceCapabilities2KHR const& ) const = default;
54637 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54638     bool operator==( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54639     {
54640       return ( sType == rhs.sType )
54641           && ( pNext == rhs.pNext )
54642           && ( surfaceCapabilities == rhs.surfaceCapabilities );
54643     }
54644 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54645     bool operator!=( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54646     {
54647       return !operator==( rhs );
54648     }
54649 #endif
54650 
54651 
54652 
54653   public:
54654     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
54655     void* pNext = {};
54656     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {};
54657 
54658   };
54659   static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" );
54660   static_assert( std::is_standard_layout<SurfaceCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
54661 
54662   template <>
54663   struct CppType<StructureType, StructureType::eSurfaceCapabilities2KHR>
54664   {
54665     using Type = SurfaceCapabilities2KHR;
54666   };
54667 
54668   struct SurfaceFormatKHR
54669   {
54670 
54671 
54672 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR54673     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
54674     : format( format_ ), colorSpace( colorSpace_ )
54675     {}
54676 
54677     VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54678 
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR54679     SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54680       : SurfaceFormatKHR( *reinterpret_cast<SurfaceFormatKHR const *>( &rhs ) )
54681     {}
54682 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54683 
54684     VULKAN_HPP_CONSTEXPR_14 SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54685 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54686     SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54687     {
54688       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const *>( &rhs );
54689       return *this;
54690     }
54691 
54692 
operator VkSurfaceFormatKHR const&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54693     operator VkSurfaceFormatKHR const&() const VULKAN_HPP_NOEXCEPT
54694     {
54695       return *reinterpret_cast<const VkSurfaceFormatKHR*>( this );
54696     }
54697 
operator VkSurfaceFormatKHR&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54698     operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
54699     {
54700       return *reinterpret_cast<VkSurfaceFormatKHR*>( this );
54701     }
54702 
54703 
54704 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54705     auto operator<=>( SurfaceFormatKHR const& ) const = default;
54706 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54707     bool operator==( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54708     {
54709       return ( format == rhs.format )
54710           && ( colorSpace == rhs.colorSpace );
54711     }
54712 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54713     bool operator!=( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54714     {
54715       return !operator==( rhs );
54716     }
54717 #endif
54718 
54719 
54720 
54721   public:
54722     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
54723     VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
54724 
54725   };
54726   static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" );
54727   static_assert( std::is_standard_layout<SurfaceFormatKHR>::value, "struct wrapper is not a standard layout!" );
54728 
54729   struct SurfaceFormat2KHR
54730   {
54731     static const bool allowDuplicate = false;
54732     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR;
54733 
54734 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54735     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR(VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}) VULKAN_HPP_NOEXCEPT
54736     : surfaceFormat( surfaceFormat_ )
54737     {}
54738 
54739     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54740 
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54741     SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54742       : SurfaceFormat2KHR( *reinterpret_cast<SurfaceFormat2KHR const *>( &rhs ) )
54743     {}
54744 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54745 
54746     VULKAN_HPP_CONSTEXPR_14 SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54747 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54748     SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54749     {
54750       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const *>( &rhs );
54751       return *this;
54752     }
54753 
54754 
operator VkSurfaceFormat2KHR const&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54755     operator VkSurfaceFormat2KHR const&() const VULKAN_HPP_NOEXCEPT
54756     {
54757       return *reinterpret_cast<const VkSurfaceFormat2KHR*>( this );
54758     }
54759 
operator VkSurfaceFormat2KHR&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54760     operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
54761     {
54762       return *reinterpret_cast<VkSurfaceFormat2KHR*>( this );
54763     }
54764 
54765 
54766 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54767     auto operator<=>( SurfaceFormat2KHR const& ) const = default;
54768 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54769     bool operator==( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54770     {
54771       return ( sType == rhs.sType )
54772           && ( pNext == rhs.pNext )
54773           && ( surfaceFormat == rhs.surfaceFormat );
54774     }
54775 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54776     bool operator!=( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54777     {
54778       return !operator==( rhs );
54779     }
54780 #endif
54781 
54782 
54783 
54784   public:
54785     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR;
54786     void* pNext = {};
54787     VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {};
54788 
54789   };
54790   static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" );
54791   static_assert( std::is_standard_layout<SurfaceFormat2KHR>::value, "struct wrapper is not a standard layout!" );
54792 
54793   template <>
54794   struct CppType<StructureType, StructureType::eSurfaceFormat2KHR>
54795   {
54796     using Type = SurfaceFormat2KHR;
54797   };
54798 
54799   struct PhysicalDeviceToolPropertiesEXT
54800   {
54801     static const bool allowDuplicate = false;
54802     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolPropertiesEXT;
54803 
54804 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54805     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
54806     : name( name_ ), version( version_ ), purposes( purposes_ ), description( description_ ), layer( layer_ )
54807     {}
54808 
54809     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54810 
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54811     PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54812       : PhysicalDeviceToolPropertiesEXT( *reinterpret_cast<PhysicalDeviceToolPropertiesEXT const *>( &rhs ) )
54813     {}
54814 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54815 
54816     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT & operator=( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54817 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54818     PhysicalDeviceToolPropertiesEXT & operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54819     {
54820       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT const *>( &rhs );
54821       return *this;
54822     }
54823 
54824 
operator VkPhysicalDeviceToolPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54825     operator VkPhysicalDeviceToolPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
54826     {
54827       return *reinterpret_cast<const VkPhysicalDeviceToolPropertiesEXT*>( this );
54828     }
54829 
operator VkPhysicalDeviceToolPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54830     operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT
54831     {
54832       return *reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( this );
54833     }
54834 
54835 
54836 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54837     auto operator<=>( PhysicalDeviceToolPropertiesEXT const& ) const = default;
54838 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54839     bool operator==( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54840     {
54841       return ( sType == rhs.sType )
54842           && ( pNext == rhs.pNext )
54843           && ( name == rhs.name )
54844           && ( version == rhs.version )
54845           && ( purposes == rhs.purposes )
54846           && ( description == rhs.description )
54847           && ( layer == rhs.layer );
54848     }
54849 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54850     bool operator!=( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54851     {
54852       return !operator==( rhs );
54853     }
54854 #endif
54855 
54856 
54857 
54858   public:
54859     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT;
54860     void* pNext = {};
54861     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> name = {};
54862     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> version = {};
54863     VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {};
54864     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
54865     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layer = {};
54866 
54867   };
54868   static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), "struct and wrapper have different size!" );
54869   static_assert( std::is_standard_layout<PhysicalDeviceToolPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
54870 
54871   template <>
54872   struct CppType<StructureType, StructureType::ePhysicalDeviceToolPropertiesEXT>
54873   {
54874     using Type = PhysicalDeviceToolPropertiesEXT;
54875   };
54876 
54877 #ifndef VULKAN_HPP_NO_SMART_HANDLE
54878   template <typename Dispatch> class UniqueHandleTraits<Device, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
54879   using UniqueDevice = UniqueHandle<Device, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
54880 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54881 
54882   class PhysicalDevice
54883   {
54884   public:
54885     using CType = VkPhysicalDevice;
54886 
54887     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice;
54888     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice;
54889 
54890   public:
PhysicalDevice()54891     VULKAN_HPP_CONSTEXPR PhysicalDevice() VULKAN_HPP_NOEXCEPT
54892       : m_physicalDevice(VK_NULL_HANDLE)
54893     {}
54894 
PhysicalDevice(std::nullptr_t)54895     VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
54896       : m_physicalDevice(VK_NULL_HANDLE)
54897     {}
54898 
PhysicalDevice(VkPhysicalDevice physicalDevice)54899     VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT
54900       : m_physicalDevice( physicalDevice )
54901     {}
54902 
54903 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPhysicalDevice physicalDevice)54904     PhysicalDevice & operator=(VkPhysicalDevice physicalDevice) VULKAN_HPP_NOEXCEPT
54905     {
54906       m_physicalDevice = physicalDevice;
54907       return *this;
54908     }
54909 #endif
54910 
operator =(std::nullptr_t)54911     PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
54912     {
54913       m_physicalDevice = VK_NULL_HANDLE;
54914       return *this;
54915     }
54916 
54917 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54918     auto operator<=>( PhysicalDevice const& ) const = default;
54919 #else
operator ==(PhysicalDevice const & rhs) const54920     bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54921     {
54922       return m_physicalDevice == rhs.m_physicalDevice;
54923     }
54924 
operator !=(PhysicalDevice const & rhs) const54925     bool operator!=(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54926     {
54927       return m_physicalDevice != rhs.m_physicalDevice;
54928     }
54929 
operator <(PhysicalDevice const & rhs) const54930     bool operator<(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54931     {
54932       return m_physicalDevice < rhs.m_physicalDevice;
54933     }
54934 #endif
54935 
54936 
54937 #ifdef VK_USE_PLATFORM_WIN32_KHR
54938 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
54939     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54940     VULKAN_HPP_NODISCARD Result acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54941 #else
54942     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54943     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54944 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54945 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
54946 
54947 
54948 
54949 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
54950     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54951     VULKAN_HPP_NODISCARD Result acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54952 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54953     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54954     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;
54955 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54956 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
54957 
54958 
54959     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54960     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;
54961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54962     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54963     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;
54964 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
54965   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54966   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Device, Dispatch>>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54967 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54968 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54969 
54970 
54971     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54972     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;
54973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54974     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54975     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;
54976 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
54977   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54978   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>>::type createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54979 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54981 
54982 
54983     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54984     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;
54985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54986     template <typename ExtensionPropertiesAllocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54987     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54988     template <typename ExtensionPropertiesAllocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ExtensionPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type = 0>
54989     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54990 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54991 
54992 
54993     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54994     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;
54995 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54996     template <typename LayerPropertiesAllocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54997     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateDeviceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54998     template <typename LayerPropertiesAllocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = LayerPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type = 0>
54999     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55000 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55001 
55002 
55003     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55004     VULKAN_HPP_NODISCARD Result enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55006     template <typename Allocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch  = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55007     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;
55008     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>
55009     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;
55010     template <typename PerformanceCounterKHRAllocator = std::allocator<PerformanceCounterKHR>, typename PerformanceCounterDescriptionKHRAllocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55011     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;
55012     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>
55013     VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55014 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55015 
55016 
55017     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55018     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;
55019 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55020     template <typename DisplayModeProperties2KHRAllocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55021     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55022     template <typename DisplayModeProperties2KHRAllocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayModeProperties2KHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayModeProperties2KHR>::value, int>::type = 0>
55023     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55025 
55026 
55027     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55028     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;
55029 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55030     template <typename DisplayModePropertiesKHRAllocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55031     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55032     template <typename DisplayModePropertiesKHRAllocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayModePropertiesKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayModePropertiesKHR>::value, int>::type = 0>
55033     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55034 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55035 
55036 
55037     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55038     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;
55039 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55040     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55041     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;
55042 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55043 
55044 
55045     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55046     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;
55047 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55048     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55049     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;
55050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55051 
55052 
55053     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55054     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;
55055 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55056     template <typename DisplayKHRAllocator = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55057     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55058     template <typename DisplayKHRAllocator = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayKHR>::value, int>::type = 0>
55059     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55060 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55061 
55062 
55063     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55064     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;
55065 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55066     template <typename TimeDomainEXTAllocator = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55067     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type getCalibrateableTimeDomainsEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55068     template <typename TimeDomainEXTAllocator = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = TimeDomainEXTAllocator, typename std::enable_if<std::is_same<typename B::value_type, TimeDomainEXT>::value, int>::type = 0>
55069     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55070 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55071 
55072 
55073     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55074     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;
55075 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55076     template <typename CooperativeMatrixPropertiesNVAllocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55077     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type getCooperativeMatrixPropertiesNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55078     template <typename CooperativeMatrixPropertiesNVAllocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CooperativeMatrixPropertiesNVAllocator, typename std::enable_if<std::is_same<typename B::value_type, CooperativeMatrixPropertiesNV>::value, int>::type = 0>
55079     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55081 
55082 
55083 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
55084     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55085     Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55086 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55087     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55088     Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55089 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55090 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
55091 
55092 
55093     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55094     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;
55095 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55096     template <typename DisplayPlaneProperties2KHRAllocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55097     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type getDisplayPlaneProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55098     template <typename DisplayPlaneProperties2KHRAllocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPlaneProperties2KHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlaneProperties2KHR>::value, int>::type = 0>
55099     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55100 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55101 
55102 
55103     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55104     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;
55105 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55106     template <typename DisplayPlanePropertiesKHRAllocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55107     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type getDisplayPlanePropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55108     template <typename DisplayPlanePropertiesKHRAllocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPlanePropertiesKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlanePropertiesKHR>::value, int>::type = 0>
55109     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55111 
55112 
55113     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55114     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;
55115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55116     template <typename DisplayProperties2KHRAllocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55117     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type getDisplayProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55118     template <typename DisplayProperties2KHRAllocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayProperties2KHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayProperties2KHR>::value, int>::type = 0>
55119     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55120 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55121 
55122 
55123     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55124     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;
55125 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55126     template <typename DisplayPropertiesKHRAllocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55127     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type getDisplayPropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55128     template <typename DisplayPropertiesKHRAllocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPropertiesKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPropertiesKHR>::value, int>::type = 0>
55129     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55130 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55131 
55132 
55133     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55134     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;
55135 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55136     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55137     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55139 
55140     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55141     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;
55142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55143     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55144     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55146 
55147 
55148     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55149     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;
55150 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55151     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55152     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55153 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55154 
55155     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55156     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;
55157 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55158     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55159     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55160 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55161 
55162 
55163     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55164     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;
55165 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55166     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55167     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV>::type getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55168 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55169 
55170 
55171     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55172     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;
55173 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55174     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55175     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55176 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55177 
55178     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55179     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;
55180 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55181     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55182     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55183 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55184 
55185 
55186     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55187     void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55188 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55189     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55190     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55192 
55193 
55194     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55195     void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55196 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55197     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55198     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55199     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55200     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55201 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55202 
55203     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55204     void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55205 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55206     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55207     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55208     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55209     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55210 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55211 
55212 
55213     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55214     void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55215 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55216     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55217     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55218 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55219 
55220 
55221     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55222     void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55223 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55224     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55225     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55226     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55227     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55228 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55229 
55230     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55231     void getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55232 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55233     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55234     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55235     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55236     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55237 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55238 
55239 
55240     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55241     VULKAN_HPP_NODISCARD Result getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55242 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55243     template <typename PhysicalDeviceFragmentShadingRateKHRAllocator = std::allocator<PhysicalDeviceFragmentShadingRateKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55244     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type getFragmentShadingRatesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55245     template <typename PhysicalDeviceFragmentShadingRateKHRAllocator = std::allocator<PhysicalDeviceFragmentShadingRateKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceFragmentShadingRateKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceFragmentShadingRateKHR>::value, int>::type = 0>
55246     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55247 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55248 
55249 
55250     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55251     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;
55252 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55253     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55254     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties>::type getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55255 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55256 
55257 
55258     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55259     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;
55260 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55261     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55262     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;
55263     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55264     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;
55265 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55266 
55267     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55268     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;
55269 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55270     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55271     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;
55272     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55273     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;
55274 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55275 
55276 
55277     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55278     void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55279 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55280     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55281     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55282 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55283 
55284 
55285     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55286     void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55287 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55288     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55289     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55290     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55291     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55292 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55293 
55294     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55295     void getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55296 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55297     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55298     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55299     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55300     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55301 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55302 
55303 
55304     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55305     void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55306 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55307     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55308     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55309 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55310 
55311 
55312     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55313     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;
55314 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55315     template <typename Rect2DAllocator = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55316     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55317     template <typename Rect2DAllocator = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Rect2DAllocator, typename std::enable_if<std::is_same<typename B::value_type, Rect2D>::value, int>::type = 0>
55318     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55319 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55320 
55321 
55322     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55323     void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55324 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55325     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55326     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55327 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55328 
55329 
55330     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55331     void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55332 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55333     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55334     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55335     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55336     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55337 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55338 
55339     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55340     void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55341 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55342     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55343     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55344     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55345     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55346 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55347 
55348 
55349     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55350     void getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55351 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55352     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55353     VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55354 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55355 
55356 
55357     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55358     void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55359 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55360     template <typename QueueFamilyPropertiesAllocator = std::allocator<QueueFamilyProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55361     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> getQueueFamilyProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55362     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>
55363     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55364 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55365 
55366 
55367     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55368     void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55369 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55370     template <typename QueueFamilyProperties2Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55371     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55372     template <typename QueueFamilyProperties2Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyProperties2Allocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type = 0>
55373     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55374     template <typename StructureChain, typename StructureChainAllocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55375     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator> getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55376     template <typename StructureChain, typename StructureChainAllocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = StructureChainAllocator, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type = 0>
55377     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator> getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55378 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55379 
55380     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55381     void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55382 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55383     template <typename QueueFamilyProperties2Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55384     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55385     template <typename QueueFamilyProperties2Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyProperties2Allocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type = 0>
55386     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55387     template <typename StructureChain, typename StructureChainAllocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55388     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator> getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55389     template <typename StructureChain, typename StructureChainAllocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = StructureChainAllocator, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type = 0>
55390     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator> getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55391 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55392 
55393 
55394 #ifdef VK_USE_PLATFORM_SCREEN_QNX
55395     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55396     Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window* window, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55397 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55398     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55399     Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55400 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55401 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
55402 
55403 
55404     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55405     void getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55406 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55407     template <typename SparseImageFormatPropertiesAllocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55408     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;
55409     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>
55410     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55411 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55412 
55413 
55414     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55415     void getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55416 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55417     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55418     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55419     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>
55420     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55421 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55422 
55423     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55424     void getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55425 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55426     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55427     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55428     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>
55429     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55430 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55431 
55432 
55433     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55434     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;
55435 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55436     template <typename FramebufferMixedSamplesCombinationNVAllocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55437     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55438     template <typename FramebufferMixedSamplesCombinationNVAllocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = FramebufferMixedSamplesCombinationNVAllocator, typename std::enable_if<std::is_same<typename B::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type = 0>
55439     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55440 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55441 
55442 
55443     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55444     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;
55445 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55446     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55447     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;
55448 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55449 
55450 
55451     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55452     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;
55453 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55454     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55455     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;
55456     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55457     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;
55458 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55459 
55460 
55461     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55462     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;
55463 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55464     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55465     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;
55466 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55467 
55468 
55469     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55470     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;
55471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55472     template <typename SurfaceFormat2KHRAllocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55473     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55474     template <typename SurfaceFormat2KHRAllocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SurfaceFormat2KHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormat2KHR>::value, int>::type = 0>
55475     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55476 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55477 
55478 
55479     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55480     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;
55481 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55482     template <typename SurfaceFormatKHRAllocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55483     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55484     template <typename SurfaceFormatKHRAllocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SurfaceFormatKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormatKHR>::value, int>::type = 0>
55485     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55486 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55487 
55488 
55489 #ifdef VK_USE_PLATFORM_WIN32_KHR
55490     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55491     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;
55492 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55493     template <typename PresentModeKHRAllocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55494     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55495     template <typename PresentModeKHRAllocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PresentModeKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type = 0>
55496     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55497 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55498 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
55499 
55500 
55501     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55502     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;
55503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55504     template <typename PresentModeKHRAllocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55505     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55506     template <typename PresentModeKHRAllocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PresentModeKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type = 0>
55507     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55508 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55509 
55510 
55511     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55512     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;
55513 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55514     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55515     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;
55516 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55517 
55518 
55519     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55520     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;
55521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55522     template <typename PhysicalDeviceToolPropertiesEXTAllocator = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55523     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type getToolPropertiesEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55524     template <typename PhysicalDeviceToolPropertiesEXTAllocator = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceToolPropertiesEXTAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolPropertiesEXT>::value, int>::type = 0>
55525     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55526 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55527 
55528 
55529 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
55530     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55531     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55532 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55533     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55534     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55535 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55536 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
55537 
55538 
55539 #ifdef VK_USE_PLATFORM_WIN32_KHR
55540     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55541     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55542 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
55543 
55544 
55545 #ifdef VK_USE_PLATFORM_XCB_KHR
55546     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55547     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;
55548 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55549     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55550     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;
55551 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55552 #endif /*VK_USE_PLATFORM_XCB_KHR*/
55553 
55554 
55555 #ifdef VK_USE_PLATFORM_XLIB_KHR
55556     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55557     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55558 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55559     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55560     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55561 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55562 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
55563 
55564 
55565 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
55566     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55567     VULKAN_HPP_NODISCARD Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55568 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55569     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55570     typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55571 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
55572   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55573   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55574 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
55575 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55576 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
55577 
55578 
55579 #ifdef VK_USE_PLATFORM_WIN32_KHR
55580     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55581     VULKAN_HPP_NODISCARD Result getWinrtDisplayNV( uint32_t deviceRelativeId, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55582 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
55583     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55584     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55585 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
55586   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55587   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55588 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
55589 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55590 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
55591 
55592 
55593 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
55594     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55595     Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
55596 #else
55597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55598     typename ResultValueType<void>::type releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55599 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55600 
55601 
operator VkPhysicalDevice() const55602     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT
55603     {
55604       return m_physicalDevice;
55605     }
55606 
operator bool() const55607     explicit operator bool() const VULKAN_HPP_NOEXCEPT
55608     {
55609       return m_physicalDevice != VK_NULL_HANDLE;
55610     }
55611 
operator !() const55612     bool operator!() const VULKAN_HPP_NOEXCEPT
55613     {
55614       return m_physicalDevice == VK_NULL_HANDLE;
55615     }
55616 
55617   private:
55618     VkPhysicalDevice m_physicalDevice;
55619   };
55620   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" );
55621 
55622   template <>
55623   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePhysicalDevice>
55624   {
55625     using type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
55626   };
55627 
55628   template <>
55629   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice>
55630   {
55631     using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
55632   };
55633 
55634 
55635   template <>
55636   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice>
55637   {
55638     using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
55639   };
55640 
55641 
55642   template <>
55643   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PhysicalDevice>
55644   {
55645     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
55646   };
55647 
55648   struct DeviceGroupDeviceCreateInfo
55649   {
55650     static const bool allowDuplicate = false;
55651     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo;
55652 
55653 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55654     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo(uint32_t physicalDeviceCount_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ = {}) VULKAN_HPP_NOEXCEPT
55655     : physicalDeviceCount( physicalDeviceCount_ ), pPhysicalDevices( pPhysicalDevices_ )
55656     {}
55657 
55658     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55659 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55660     DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55661       : DeviceGroupDeviceCreateInfo( *reinterpret_cast<DeviceGroupDeviceCreateInfo const *>( &rhs ) )
55662     {}
55663 
55664 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55665     DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ )
55666     : physicalDeviceCount( static_cast<uint32_t>( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() )
55667     {}
55668 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55669 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55670 
55671     VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55672 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55673     DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55674     {
55675       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const *>( &rhs );
55676       return *this;
55677     }
55678 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55679     DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55680     {
55681       pNext = pNext_;
55682       return *this;
55683     }
55684 
setPhysicalDeviceCountVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55685     DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT
55686     {
55687       physicalDeviceCount = physicalDeviceCount_;
55688       return *this;
55689     }
55690 
setPPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55691     DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
55692     {
55693       pPhysicalDevices = pPhysicalDevices_;
55694       return *this;
55695     }
55696 
55697 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55698     DeviceGroupDeviceCreateInfo & setPhysicalDevices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT
55699     {
55700       physicalDeviceCount = static_cast<uint32_t>( physicalDevices_.size() );
55701       pPhysicalDevices = physicalDevices_.data();
55702       return *this;
55703     }
55704 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55705 
55706 
operator VkDeviceGroupDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55707     operator VkDeviceGroupDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
55708     {
55709       return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>( this );
55710     }
55711 
operator VkDeviceGroupDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55712     operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
55713     {
55714       return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>( this );
55715     }
55716 
55717 
55718 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55719     auto operator<=>( DeviceGroupDeviceCreateInfo const& ) const = default;
55720 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55721     bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55722     {
55723       return ( sType == rhs.sType )
55724           && ( pNext == rhs.pNext )
55725           && ( physicalDeviceCount == rhs.physicalDeviceCount )
55726           && ( pPhysicalDevices == rhs.pPhysicalDevices );
55727     }
55728 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55729     bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55730     {
55731       return !operator==( rhs );
55732     }
55733 #endif
55734 
55735 
55736 
55737   public:
55738     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
55739     const void* pNext = {};
55740     uint32_t physicalDeviceCount = {};
55741     const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices = {};
55742 
55743   };
55744   static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" );
55745   static_assert( std::is_standard_layout<DeviceGroupDeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
55746 
55747   template <>
55748   struct CppType<StructureType, StructureType::eDeviceGroupDeviceCreateInfo>
55749   {
55750     using Type = DeviceGroupDeviceCreateInfo;
55751   };
55752   using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
55753 
55754   struct DeviceGroupPresentInfoKHR
55755   {
55756     static const bool allowDuplicate = false;
55757     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR;
55758 
55759 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55760     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(uint32_t swapchainCount_ = {}, const uint32_t* pDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal) VULKAN_HPP_NOEXCEPT
55761     : swapchainCount( swapchainCount_ ), pDeviceMasks( pDeviceMasks_ ), mode( mode_ )
55762     {}
55763 
55764     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55765 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55766     DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55767       : DeviceGroupPresentInfoKHR( *reinterpret_cast<DeviceGroupPresentInfoKHR const *>( &rhs ) )
55768     {}
55769 
55770 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55771     DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal )
55772     : swapchainCount( static_cast<uint32_t>( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ )
55773     {}
55774 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55775 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55776 
55777     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55778 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55779     DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55780     {
55781       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const *>( &rhs );
55782       return *this;
55783     }
55784 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55785     DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55786     {
55787       pNext = pNext_;
55788       return *this;
55789     }
55790 
setSwapchainCountVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55791     DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
55792     {
55793       swapchainCount = swapchainCount_;
55794       return *this;
55795     }
55796 
setPDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55797     DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
55798     {
55799       pDeviceMasks = pDeviceMasks_;
55800       return *this;
55801     }
55802 
55803 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55804     DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT
55805     {
55806       swapchainCount = static_cast<uint32_t>( deviceMasks_.size() );
55807       pDeviceMasks = deviceMasks_.data();
55808       return *this;
55809     }
55810 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55811 
setModeVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55812     DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
55813     {
55814       mode = mode_;
55815       return *this;
55816     }
55817 
55818 
operator VkDeviceGroupPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55819     operator VkDeviceGroupPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
55820     {
55821       return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>( this );
55822     }
55823 
operator VkDeviceGroupPresentInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55824     operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
55825     {
55826       return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>( this );
55827     }
55828 
55829 
55830 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55831     auto operator<=>( DeviceGroupPresentInfoKHR const& ) const = default;
55832 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55833     bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55834     {
55835       return ( sType == rhs.sType )
55836           && ( pNext == rhs.pNext )
55837           && ( swapchainCount == rhs.swapchainCount )
55838           && ( pDeviceMasks == rhs.pDeviceMasks )
55839           && ( mode == rhs.mode );
55840     }
55841 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55842     bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55843     {
55844       return !operator==( rhs );
55845     }
55846 #endif
55847 
55848 
55849 
55850   public:
55851     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
55852     const void* pNext = {};
55853     uint32_t swapchainCount = {};
55854     const uint32_t* pDeviceMasks = {};
55855     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal;
55856 
55857   };
55858   static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" );
55859   static_assert( std::is_standard_layout<DeviceGroupPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
55860 
55861   template <>
55862   struct CppType<StructureType, StructureType::eDeviceGroupPresentInfoKHR>
55863   {
55864     using Type = DeviceGroupPresentInfoKHR;
55865   };
55866 
55867   struct DeviceGroupRenderPassBeginInfo
55868   {
55869     static const bool allowDuplicate = false;
55870     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo;
55871 
55872 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55873     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo(uint32_t deviceMask_ = {}, uint32_t deviceRenderAreaCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ = {}) VULKAN_HPP_NOEXCEPT
55874     : deviceMask( deviceMask_ ), deviceRenderAreaCount( deviceRenderAreaCount_ ), pDeviceRenderAreas( pDeviceRenderAreas_ )
55875     {}
55876 
55877     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55878 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55879     DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55880       : DeviceGroupRenderPassBeginInfo( *reinterpret_cast<DeviceGroupRenderPassBeginInfo const *>( &rhs ) )
55881     {}
55882 
55883 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55884     DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ )
55885     : deviceMask( deviceMask_ ), deviceRenderAreaCount( static_cast<uint32_t>( deviceRenderAreas_.size() ) ), pDeviceRenderAreas( deviceRenderAreas_.data() )
55886     {}
55887 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55888 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55889 
55890     VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55891 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55892     DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55893     {
55894       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const *>( &rhs );
55895       return *this;
55896     }
55897 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55898     DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55899     {
55900       pNext = pNext_;
55901       return *this;
55902     }
55903 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55904     DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
55905     {
55906       deviceMask = deviceMask_;
55907       return *this;
55908     }
55909 
setDeviceRenderAreaCountVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55910     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
55911     {
55912       deviceRenderAreaCount = deviceRenderAreaCount_;
55913       return *this;
55914     }
55915 
setPDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55916     DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
55917     {
55918       pDeviceRenderAreas = pDeviceRenderAreas_;
55919       return *this;
55920     }
55921 
55922 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55923     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
55924     {
55925       deviceRenderAreaCount = static_cast<uint32_t>( deviceRenderAreas_.size() );
55926       pDeviceRenderAreas = deviceRenderAreas_.data();
55927       return *this;
55928     }
55929 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55930 
55931 
operator VkDeviceGroupRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55932     operator VkDeviceGroupRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
55933     {
55934       return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>( this );
55935     }
55936 
operator VkDeviceGroupRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55937     operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
55938     {
55939       return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>( this );
55940     }
55941 
55942 
55943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55944     auto operator<=>( DeviceGroupRenderPassBeginInfo const& ) const = default;
55945 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55946     bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55947     {
55948       return ( sType == rhs.sType )
55949           && ( pNext == rhs.pNext )
55950           && ( deviceMask == rhs.deviceMask )
55951           && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount )
55952           && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
55953     }
55954 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55955     bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55956     {
55957       return !operator==( rhs );
55958     }
55959 #endif
55960 
55961 
55962 
55963   public:
55964     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
55965     const void* pNext = {};
55966     uint32_t deviceMask = {};
55967     uint32_t deviceRenderAreaCount = {};
55968     const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas = {};
55969 
55970   };
55971   static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" );
55972   static_assert( std::is_standard_layout<DeviceGroupRenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
55973 
55974   template <>
55975   struct CppType<StructureType, StructureType::eDeviceGroupRenderPassBeginInfo>
55976   {
55977     using Type = DeviceGroupRenderPassBeginInfo;
55978   };
55979   using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
55980 
55981   struct DeviceGroupSubmitInfo
55982   {
55983     static const bool allowDuplicate = false;
55984     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo;
55985 
55986 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55987     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
55988     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ), commandBufferCount( commandBufferCount_ ), pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
55989     {}
55990 
55991     VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55992 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55993     DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55994       : DeviceGroupSubmitInfo( *reinterpret_cast<DeviceGroupSubmitInfo const *>( &rhs ) )
55995     {}
55996 
55997 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55998     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_ = {} )
55999     : 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() )
56000     {}
56001 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
56002 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56003 
56004     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56005 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56006     DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56007     {
56008       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const *>( &rhs );
56009       return *this;
56010     }
56011 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56012     DeviceGroupSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56013     {
56014       pNext = pNext_;
56015       return *this;
56016     }
56017 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56018     DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
56019     {
56020       waitSemaphoreCount = waitSemaphoreCount_;
56021       return *this;
56022     }
56023 
setPWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56024     DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
56025     {
56026       pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
56027       return *this;
56028     }
56029 
56030 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56031     DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
56032     {
56033       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() );
56034       pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data();
56035       return *this;
56036     }
56037 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
56038 
setCommandBufferCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56039     DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
56040     {
56041       commandBufferCount = commandBufferCount_;
56042       return *this;
56043     }
56044 
setPCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56045     DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
56046     {
56047       pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
56048       return *this;
56049     }
56050 
56051 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56052     DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
56053     {
56054       commandBufferCount = static_cast<uint32_t>( commandBufferDeviceMasks_.size() );
56055       pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data();
56056       return *this;
56057     }
56058 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
56059 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56060     DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
56061     {
56062       signalSemaphoreCount = signalSemaphoreCount_;
56063       return *this;
56064     }
56065 
setPSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56066     DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
56067     {
56068       pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
56069       return *this;
56070     }
56071 
56072 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56073     DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
56074     {
56075       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() );
56076       pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data();
56077       return *this;
56078     }
56079 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
56080 
56081 
operator VkDeviceGroupSubmitInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56082     operator VkDeviceGroupSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
56083     {
56084       return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>( this );
56085     }
56086 
operator VkDeviceGroupSubmitInfo&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56087     operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
56088     {
56089       return *reinterpret_cast<VkDeviceGroupSubmitInfo*>( this );
56090     }
56091 
56092 
56093 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56094     auto operator<=>( DeviceGroupSubmitInfo const& ) const = default;
56095 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56096     bool operator==( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56097     {
56098       return ( sType == rhs.sType )
56099           && ( pNext == rhs.pNext )
56100           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
56101           && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices )
56102           && ( commandBufferCount == rhs.commandBufferCount )
56103           && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks )
56104           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
56105           && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
56106     }
56107 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo56108     bool operator!=( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56109     {
56110       return !operator==( rhs );
56111     }
56112 #endif
56113 
56114 
56115 
56116   public:
56117     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
56118     const void* pNext = {};
56119     uint32_t waitSemaphoreCount = {};
56120     const uint32_t* pWaitSemaphoreDeviceIndices = {};
56121     uint32_t commandBufferCount = {};
56122     const uint32_t* pCommandBufferDeviceMasks = {};
56123     uint32_t signalSemaphoreCount = {};
56124     const uint32_t* pSignalSemaphoreDeviceIndices = {};
56125 
56126   };
56127   static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" );
56128   static_assert( std::is_standard_layout<DeviceGroupSubmitInfo>::value, "struct wrapper is not a standard layout!" );
56129 
56130   template <>
56131   struct CppType<StructureType, StructureType::eDeviceGroupSubmitInfo>
56132   {
56133     using Type = DeviceGroupSubmitInfo;
56134   };
56135   using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
56136 
56137   struct DeviceGroupSwapchainCreateInfoKHR
56138   {
56139     static const bool allowDuplicate = false;
56140     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
56141 
56142 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56143     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT
56144     : modes( modes_ )
56145     {}
56146 
56147     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56148 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56149     DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56150       : DeviceGroupSwapchainCreateInfoKHR( *reinterpret_cast<DeviceGroupSwapchainCreateInfoKHR const *>( &rhs ) )
56151     {}
56152 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56153 
56154     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56155 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56156     DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56157     {
56158       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const *>( &rhs );
56159       return *this;
56160     }
56161 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56162     DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56163     {
56164       pNext = pNext_;
56165       return *this;
56166     }
56167 
setModesVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56168     DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT
56169     {
56170       modes = modes_;
56171       return *this;
56172     }
56173 
56174 
operator VkDeviceGroupSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56175     operator VkDeviceGroupSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56176     {
56177       return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>( this );
56178     }
56179 
operator VkDeviceGroupSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56180     operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
56181     {
56182       return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>( this );
56183     }
56184 
56185 
56186 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56187     auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const& ) const = default;
56188 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56189     bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56190     {
56191       return ( sType == rhs.sType )
56192           && ( pNext == rhs.pNext )
56193           && ( modes == rhs.modes );
56194     }
56195 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR56196     bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56197     {
56198       return !operator==( rhs );
56199     }
56200 #endif
56201 
56202 
56203 
56204   public:
56205     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
56206     const void* pNext = {};
56207     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
56208 
56209   };
56210   static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
56211   static_assert( std::is_standard_layout<DeviceGroupSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
56212 
56213   template <>
56214   struct CppType<StructureType, StructureType::eDeviceGroupSwapchainCreateInfoKHR>
56215   {
56216     using Type = DeviceGroupSwapchainCreateInfoKHR;
56217   };
56218 
56219   struct DeviceMemoryOverallocationCreateInfoAMD
56220   {
56221     static const bool allowDuplicate = false;
56222     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
56223 
56224 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56225     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault) VULKAN_HPP_NOEXCEPT
56226     : overallocationBehavior( overallocationBehavior_ )
56227     {}
56228 
56229     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56230 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56231     DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56232       : DeviceMemoryOverallocationCreateInfoAMD( *reinterpret_cast<DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs ) )
56233     {}
56234 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56235 
56236     VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56237 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56238     DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56239     {
56240       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs );
56241       return *this;
56242     }
56243 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56244     DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56245     {
56246       pNext = pNext_;
56247       return *this;
56248     }
56249 
setOverallocationBehaviorVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56250     DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
56251     {
56252       overallocationBehavior = overallocationBehavior_;
56253       return *this;
56254     }
56255 
56256 
operator VkDeviceMemoryOverallocationCreateInfoAMD const&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56257     operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
56258     {
56259       return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
56260     }
56261 
operator VkDeviceMemoryOverallocationCreateInfoAMD&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56262     operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
56263     {
56264       return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
56265     }
56266 
56267 
56268 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56269     auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const& ) const = default;
56270 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56271     bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
56272     {
56273       return ( sType == rhs.sType )
56274           && ( pNext == rhs.pNext )
56275           && ( overallocationBehavior == rhs.overallocationBehavior );
56276     }
56277 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD56278     bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
56279     {
56280       return !operator==( rhs );
56281     }
56282 #endif
56283 
56284 
56285 
56286   public:
56287     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
56288     const void* pNext = {};
56289     VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault;
56290 
56291   };
56292   static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" );
56293   static_assert( std::is_standard_layout<DeviceMemoryOverallocationCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
56294 
56295   template <>
56296   struct CppType<StructureType, StructureType::eDeviceMemoryOverallocationCreateInfoAMD>
56297   {
56298     using Type = DeviceMemoryOverallocationCreateInfoAMD;
56299   };
56300 
56301   struct DeviceMemoryReportCallbackDataEXT
56302   {
56303     static const bool allowDuplicate = false;
56304     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT;
56305 
56306 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT56307     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
56308     : flags( flags_ ), type( type_ ), memoryObjectId( memoryObjectId_ ), size( size_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), heapIndex( heapIndex_ )
56309     {}
56310 
56311     VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56312 
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT56313     DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56314       : DeviceMemoryReportCallbackDataEXT( *reinterpret_cast<DeviceMemoryReportCallbackDataEXT const *>( &rhs ) )
56315     {}
56316 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56317 
56318     VULKAN_HPP_CONSTEXPR_14 DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56319 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT56320     DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56321     {
56322       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const *>( &rhs );
56323       return *this;
56324     }
56325 
56326 
operator VkDeviceMemoryReportCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT56327     operator VkDeviceMemoryReportCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
56328     {
56329       return *reinterpret_cast<const VkDeviceMemoryReportCallbackDataEXT*>( this );
56330     }
56331 
operator VkDeviceMemoryReportCallbackDataEXT&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT56332     operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
56333     {
56334       return *reinterpret_cast<VkDeviceMemoryReportCallbackDataEXT*>( this );
56335     }
56336 
56337 
56338 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56339     auto operator<=>( DeviceMemoryReportCallbackDataEXT const& ) const = default;
56340 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT56341     bool operator==( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56342     {
56343       return ( sType == rhs.sType )
56344           && ( pNext == rhs.pNext )
56345           && ( flags == rhs.flags )
56346           && ( type == rhs.type )
56347           && ( memoryObjectId == rhs.memoryObjectId )
56348           && ( size == rhs.size )
56349           && ( objectType == rhs.objectType )
56350           && ( objectHandle == rhs.objectHandle )
56351           && ( heapIndex == rhs.heapIndex );
56352     }
56353 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT56354     bool operator!=( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56355     {
56356       return !operator==( rhs );
56357     }
56358 #endif
56359 
56360 
56361 
56362   public:
56363     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT;
56364     const void* pNext = {};
56365     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
56366     VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate;
56367     uint64_t memoryObjectId = {};
56368     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
56369     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
56370     uint64_t objectHandle = {};
56371     uint32_t heapIndex = {};
56372 
56373   };
56374   static_assert( sizeof( DeviceMemoryReportCallbackDataEXT ) == sizeof( VkDeviceMemoryReportCallbackDataEXT ), "struct and wrapper have different size!" );
56375   static_assert( std::is_standard_layout<DeviceMemoryReportCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
56376 
56377   template <>
56378   struct CppType<StructureType, StructureType::eDeviceMemoryReportCallbackDataEXT>
56379   {
56380     using Type = DeviceMemoryReportCallbackDataEXT;
56381   };
56382 
56383   struct DevicePrivateDataCreateInfoEXT
56384   {
56385     static const bool allowDuplicate = true;
56386     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfoEXT;
56387 
56388 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56389     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT(uint32_t privateDataSlotRequestCount_ = {}) VULKAN_HPP_NOEXCEPT
56390     : privateDataSlotRequestCount( privateDataSlotRequestCount_ )
56391     {}
56392 
56393     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56394 
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56395     DevicePrivateDataCreateInfoEXT( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56396       : DevicePrivateDataCreateInfoEXT( *reinterpret_cast<DevicePrivateDataCreateInfoEXT const *>( &rhs ) )
56397     {}
56398 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56399 
56400     VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfoEXT & operator=( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56401 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56402     DevicePrivateDataCreateInfoEXT & operator=( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56403     {
56404       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT const *>( &rhs );
56405       return *this;
56406     }
56407 
setPNextVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56408     DevicePrivateDataCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56409     {
56410       pNext = pNext_;
56411       return *this;
56412     }
56413 
setPrivateDataSlotRequestCountVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56414     DevicePrivateDataCreateInfoEXT & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT
56415     {
56416       privateDataSlotRequestCount = privateDataSlotRequestCount_;
56417       return *this;
56418     }
56419 
56420 
operator VkDevicePrivateDataCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56421     operator VkDevicePrivateDataCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
56422     {
56423       return *reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>( this );
56424     }
56425 
operator VkDevicePrivateDataCreateInfoEXT&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56426     operator VkDevicePrivateDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
56427     {
56428       return *reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>( this );
56429     }
56430 
56431 
56432 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56433     auto operator<=>( DevicePrivateDataCreateInfoEXT const& ) const = default;
56434 #else
operator ==VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56435     bool operator==( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56436     {
56437       return ( sType == rhs.sType )
56438           && ( pNext == rhs.pNext )
56439           && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount );
56440     }
56441 
operator !=VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT56442     bool operator!=( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56443     {
56444       return !operator==( rhs );
56445     }
56446 #endif
56447 
56448 
56449 
56450   public:
56451     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfoEXT;
56452     const void* pNext = {};
56453     uint32_t privateDataSlotRequestCount = {};
56454 
56455   };
56456   static_assert( sizeof( DevicePrivateDataCreateInfoEXT ) == sizeof( VkDevicePrivateDataCreateInfoEXT ), "struct and wrapper have different size!" );
56457   static_assert( std::is_standard_layout<DevicePrivateDataCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
56458 
56459   template <>
56460   struct CppType<StructureType, StructureType::eDevicePrivateDataCreateInfoEXT>
56461   {
56462     using Type = DevicePrivateDataCreateInfoEXT;
56463   };
56464 
56465   struct DeviceQueueGlobalPriorityCreateInfoEXT
56466   {
56467     static const bool allowDuplicate = false;
56468     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
56469 
56470 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56471     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT(VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow) VULKAN_HPP_NOEXCEPT
56472     : globalPriority( globalPriority_ )
56473     {}
56474 
56475     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56476 
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56477     DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56478       : DeviceQueueGlobalPriorityCreateInfoEXT( *reinterpret_cast<DeviceQueueGlobalPriorityCreateInfoEXT const *>( &rhs ) )
56479     {}
56480 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56481 
56482     VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoEXT & operator=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56483 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56484     DeviceQueueGlobalPriorityCreateInfoEXT & operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56485     {
56486       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT const *>( &rhs );
56487       return *this;
56488     }
56489 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56490     DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56491     {
56492       pNext = pNext_;
56493       return *this;
56494     }
56495 
setGlobalPriorityVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56496     DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT
56497     {
56498       globalPriority = globalPriority_;
56499       return *this;
56500     }
56501 
56502 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56503     operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
56504     {
56505       return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
56506     }
56507 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56508     operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
56509     {
56510       return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
56511     }
56512 
56513 
56514 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56515     auto operator<=>( DeviceQueueGlobalPriorityCreateInfoEXT const& ) const = default;
56516 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56517     bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56518     {
56519       return ( sType == rhs.sType )
56520           && ( pNext == rhs.pNext )
56521           && ( globalPriority == rhs.globalPriority );
56522     }
56523 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT56524     bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56525     {
56526       return !operator==( rhs );
56527     }
56528 #endif
56529 
56530 
56531 
56532   public:
56533     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
56534     const void* pNext = {};
56535     VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow;
56536 
56537   };
56538   static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" );
56539   static_assert( std::is_standard_layout<DeviceQueueGlobalPriorityCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
56540 
56541   template <>
56542   struct CppType<StructureType, StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT>
56543   {
56544     using Type = DeviceQueueGlobalPriorityCreateInfoEXT;
56545   };
56546 
56547 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
56548   struct DirectFBSurfaceCreateInfoEXT
56549   {
56550     static const bool allowDuplicate = false;
56551     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT;
56552 
56553 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56554     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {}, IDirectFB* dfb_ = {}, IDirectFBSurface* surface_ = {}) VULKAN_HPP_NOEXCEPT
56555     : flags( flags_ ), dfb( dfb_ ), surface( surface_ )
56556     {}
56557 
56558     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56559 
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56560     DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56561       : DirectFBSurfaceCreateInfoEXT( *reinterpret_cast<DirectFBSurfaceCreateInfoEXT const *>( &rhs ) )
56562     {}
56563 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56564 
56565     VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56566 
operator =VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56567     DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56568     {
56569       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const *>( &rhs );
56570       return *this;
56571     }
56572 
setPNextVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56573     DirectFBSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56574     {
56575       pNext = pNext_;
56576       return *this;
56577     }
56578 
setFlagsVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56579     DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
56580     {
56581       flags = flags_;
56582       return *this;
56583     }
56584 
setDfbVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56585     DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB* dfb_ ) VULKAN_HPP_NOEXCEPT
56586     {
56587       dfb = dfb_;
56588       return *this;
56589     }
56590 
setSurfaceVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56591     DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface* surface_ ) VULKAN_HPP_NOEXCEPT
56592     {
56593       surface = surface_;
56594       return *this;
56595     }
56596 
56597 
operator VkDirectFBSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56598     operator VkDirectFBSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
56599     {
56600       return *reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT*>( this );
56601     }
56602 
operator VkDirectFBSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56603     operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
56604     {
56605       return *reinterpret_cast<VkDirectFBSurfaceCreateInfoEXT*>( this );
56606     }
56607 
56608 
56609 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56610     auto operator<=>( DirectFBSurfaceCreateInfoEXT const& ) const = default;
56611 #else
operator ==VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56612     bool operator==( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56613     {
56614       return ( sType == rhs.sType )
56615           && ( pNext == rhs.pNext )
56616           && ( flags == rhs.flags )
56617           && ( dfb == rhs.dfb )
56618           && ( surface == rhs.surface );
56619     }
56620 
operator !=VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56621     bool operator!=( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56622     {
56623       return !operator==( rhs );
56624     }
56625 #endif
56626 
56627 
56628 
56629   public:
56630     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT;
56631     const void* pNext = {};
56632     VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {};
56633     IDirectFB* dfb = {};
56634     IDirectFBSurface* surface = {};
56635 
56636   };
56637   static_assert( sizeof( DirectFBSurfaceCreateInfoEXT ) == sizeof( VkDirectFBSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
56638   static_assert( std::is_standard_layout<DirectFBSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
56639 
56640   template <>
56641   struct CppType<StructureType, StructureType::eDirectfbSurfaceCreateInfoEXT>
56642   {
56643     using Type = DirectFBSurfaceCreateInfoEXT;
56644   };
56645 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
56646 
56647   struct DispatchIndirectCommand
56648   {
56649 
56650 
56651 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56652     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand(uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {}) VULKAN_HPP_NOEXCEPT
56653     : x( x_ ), y( y_ ), z( z_ )
56654     {}
56655 
56656     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56657 
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56658     DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56659       : DispatchIndirectCommand( *reinterpret_cast<DispatchIndirectCommand const *>( &rhs ) )
56660     {}
56661 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56662 
56663     VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56664 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56665     DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56666     {
56667       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const *>( &rhs );
56668       return *this;
56669     }
56670 
setXVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56671     DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
56672     {
56673       x = x_;
56674       return *this;
56675     }
56676 
setYVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56677     DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT
56678     {
56679       y = y_;
56680       return *this;
56681     }
56682 
setZVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56683     DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT
56684     {
56685       z = z_;
56686       return *this;
56687     }
56688 
56689 
operator VkDispatchIndirectCommand const&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56690     operator VkDispatchIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
56691     {
56692       return *reinterpret_cast<const VkDispatchIndirectCommand*>( this );
56693     }
56694 
operator VkDispatchIndirectCommand&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56695     operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT
56696     {
56697       return *reinterpret_cast<VkDispatchIndirectCommand*>( this );
56698     }
56699 
56700 
56701 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56702     auto operator<=>( DispatchIndirectCommand const& ) const = default;
56703 #else
operator ==VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56704     bool operator==( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56705     {
56706       return ( x == rhs.x )
56707           && ( y == rhs.y )
56708           && ( z == rhs.z );
56709     }
56710 
operator !=VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56711     bool operator!=( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56712     {
56713       return !operator==( rhs );
56714     }
56715 #endif
56716 
56717 
56718 
56719   public:
56720     uint32_t x = {};
56721     uint32_t y = {};
56722     uint32_t z = {};
56723 
56724   };
56725   static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" );
56726   static_assert( std::is_standard_layout<DispatchIndirectCommand>::value, "struct wrapper is not a standard layout!" );
56727 
56728   struct DisplayNativeHdrSurfaceCapabilitiesAMD
56729   {
56730     static const bool allowDuplicate = false;
56731     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
56732 
56733 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56734     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {}) VULKAN_HPP_NOEXCEPT
56735     : localDimmingSupport( localDimmingSupport_ )
56736     {}
56737 
56738     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56739 
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56740     DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56741       : DisplayNativeHdrSurfaceCapabilitiesAMD( *reinterpret_cast<DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs ) )
56742     {}
56743 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56744 
56745     VULKAN_HPP_CONSTEXPR_14 DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56746 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56747     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56748     {
56749       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs );
56750       return *this;
56751     }
56752 
56753 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56754     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const VULKAN_HPP_NOEXCEPT
56755     {
56756       return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
56757     }
56758 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56759     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT
56760     {
56761       return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
56762     }
56763 
56764 
56765 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56766     auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const& ) const = default;
56767 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56768     bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
56769     {
56770       return ( sType == rhs.sType )
56771           && ( pNext == rhs.pNext )
56772           && ( localDimmingSupport == rhs.localDimmingSupport );
56773     }
56774 
operator !=VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56775     bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
56776     {
56777       return !operator==( rhs );
56778     }
56779 #endif
56780 
56781 
56782 
56783   public:
56784     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
56785     void* pNext = {};
56786     VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {};
56787 
56788   };
56789   static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" );
56790   static_assert( std::is_standard_layout<DisplayNativeHdrSurfaceCapabilitiesAMD>::value, "struct wrapper is not a standard layout!" );
56791 
56792   template <>
56793   struct CppType<StructureType, StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD>
56794   {
56795     using Type = DisplayNativeHdrSurfaceCapabilitiesAMD;
56796   };
56797 
56798   struct DisplayPresentInfoKHR
56799   {
56800     static const bool allowDuplicate = false;
56801     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR;
56802 
56803 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56804     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR(VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {}) VULKAN_HPP_NOEXCEPT
56805     : srcRect( srcRect_ ), dstRect( dstRect_ ), persistent( persistent_ )
56806     {}
56807 
56808     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56809 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56810     DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56811       : DisplayPresentInfoKHR( *reinterpret_cast<DisplayPresentInfoKHR const *>( &rhs ) )
56812     {}
56813 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56814 
56815     VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56816 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56817     DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56818     {
56819       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const *>( &rhs );
56820       return *this;
56821     }
56822 
setPNextVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56823     DisplayPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56824     {
56825       pNext = pNext_;
56826       return *this;
56827     }
56828 
setSrcRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56829     DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT
56830     {
56831       srcRect = srcRect_;
56832       return *this;
56833     }
56834 
setDstRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56835     DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT
56836     {
56837       dstRect = dstRect_;
56838       return *this;
56839     }
56840 
setPersistentVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56841     DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT
56842     {
56843       persistent = persistent_;
56844       return *this;
56845     }
56846 
56847 
operator VkDisplayPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56848     operator VkDisplayPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56849     {
56850       return *reinterpret_cast<const VkDisplayPresentInfoKHR*>( this );
56851     }
56852 
operator VkDisplayPresentInfoKHR&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56853     operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
56854     {
56855       return *reinterpret_cast<VkDisplayPresentInfoKHR*>( this );
56856     }
56857 
56858 
56859 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56860     auto operator<=>( DisplayPresentInfoKHR const& ) const = default;
56861 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56862     bool operator==( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56863     {
56864       return ( sType == rhs.sType )
56865           && ( pNext == rhs.pNext )
56866           && ( srcRect == rhs.srcRect )
56867           && ( dstRect == rhs.dstRect )
56868           && ( persistent == rhs.persistent );
56869     }
56870 
operator !=VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56871     bool operator!=( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56872     {
56873       return !operator==( rhs );
56874     }
56875 #endif
56876 
56877 
56878 
56879   public:
56880     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR;
56881     const void* pNext = {};
56882     VULKAN_HPP_NAMESPACE::Rect2D srcRect = {};
56883     VULKAN_HPP_NAMESPACE::Rect2D dstRect = {};
56884     VULKAN_HPP_NAMESPACE::Bool32 persistent = {};
56885 
56886   };
56887   static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" );
56888   static_assert( std::is_standard_layout<DisplayPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
56889 
56890   template <>
56891   struct CppType<StructureType, StructureType::eDisplayPresentInfoKHR>
56892   {
56893     using Type = DisplayPresentInfoKHR;
56894   };
56895 
56896   struct DisplaySurfaceCreateInfoKHR
56897   {
56898     static const bool allowDuplicate = false;
56899     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR;
56900 
56901 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56902     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
56903     : flags( flags_ ), displayMode( displayMode_ ), planeIndex( planeIndex_ ), planeStackIndex( planeStackIndex_ ), transform( transform_ ), globalAlpha( globalAlpha_ ), alphaMode( alphaMode_ ), imageExtent( imageExtent_ )
56904     {}
56905 
56906     VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56907 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56908     DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56909       : DisplaySurfaceCreateInfoKHR( *reinterpret_cast<DisplaySurfaceCreateInfoKHR const *>( &rhs ) )
56910     {}
56911 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56912 
56913     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56914 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56915     DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56916     {
56917       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const *>( &rhs );
56918       return *this;
56919     }
56920 
setPNextVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56921     DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56922     {
56923       pNext = pNext_;
56924       return *this;
56925     }
56926 
setFlagsVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56927     DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
56928     {
56929       flags = flags_;
56930       return *this;
56931     }
56932 
setDisplayModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56933     DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT
56934     {
56935       displayMode = displayMode_;
56936       return *this;
56937     }
56938 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56939     DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
56940     {
56941       planeIndex = planeIndex_;
56942       return *this;
56943     }
56944 
setPlaneStackIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56945     DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT
56946     {
56947       planeStackIndex = planeStackIndex_;
56948       return *this;
56949     }
56950 
setTransformVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56951     DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
56952     {
56953       transform = transform_;
56954       return *this;
56955     }
56956 
setGlobalAlphaVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56957     DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT
56958     {
56959       globalAlpha = globalAlpha_;
56960       return *this;
56961     }
56962 
setAlphaModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56963     DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT
56964     {
56965       alphaMode = alphaMode_;
56966       return *this;
56967     }
56968 
setImageExtentVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56969     DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
56970     {
56971       imageExtent = imageExtent_;
56972       return *this;
56973     }
56974 
56975 
operator VkDisplaySurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56976     operator VkDisplaySurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56977     {
56978       return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( this );
56979     }
56980 
operator VkDisplaySurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56981     operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
56982     {
56983       return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>( this );
56984     }
56985 
56986 
56987 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56988     auto operator<=>( DisplaySurfaceCreateInfoKHR const& ) const = default;
56989 #else
operator ==VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56990     bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56991     {
56992       return ( sType == rhs.sType )
56993           && ( pNext == rhs.pNext )
56994           && ( flags == rhs.flags )
56995           && ( displayMode == rhs.displayMode )
56996           && ( planeIndex == rhs.planeIndex )
56997           && ( planeStackIndex == rhs.planeStackIndex )
56998           && ( transform == rhs.transform )
56999           && ( globalAlpha == rhs.globalAlpha )
57000           && ( alphaMode == rhs.alphaMode )
57001           && ( imageExtent == rhs.imageExtent );
57002     }
57003 
operator !=VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR57004     bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57005     {
57006       return !operator==( rhs );
57007     }
57008 #endif
57009 
57010 
57011 
57012   public:
57013     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
57014     const void* pNext = {};
57015     VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {};
57016     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
57017     uint32_t planeIndex = {};
57018     uint32_t planeStackIndex = {};
57019     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
57020     float globalAlpha = {};
57021     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque;
57022     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
57023 
57024   };
57025   static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
57026   static_assert( std::is_standard_layout<DisplaySurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
57027 
57028   template <>
57029   struct CppType<StructureType, StructureType::eDisplaySurfaceCreateInfoKHR>
57030   {
57031     using Type = DisplaySurfaceCreateInfoKHR;
57032   };
57033 
57034   struct DrawIndexedIndirectCommand
57035   {
57036 
57037 
57038 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57039     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand(uint32_t indexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstIndex_ = {}, int32_t vertexOffset_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
57040     : indexCount( indexCount_ ), instanceCount( instanceCount_ ), firstIndex( firstIndex_ ), vertexOffset( vertexOffset_ ), firstInstance( firstInstance_ )
57041     {}
57042 
57043     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57044 
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57045     DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
57046       : DrawIndexedIndirectCommand( *reinterpret_cast<DrawIndexedIndirectCommand const *>( &rhs ) )
57047     {}
57048 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57049 
57050     VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57051 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57052     DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
57053     {
57054       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const *>( &rhs );
57055       return *this;
57056     }
57057 
setIndexCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57058     DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
57059     {
57060       indexCount = indexCount_;
57061       return *this;
57062     }
57063 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57064     DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
57065     {
57066       instanceCount = instanceCount_;
57067       return *this;
57068     }
57069 
setFirstIndexVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57070     DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
57071     {
57072       firstIndex = firstIndex_;
57073       return *this;
57074     }
57075 
setVertexOffsetVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57076     DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
57077     {
57078       vertexOffset = vertexOffset_;
57079       return *this;
57080     }
57081 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57082     DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
57083     {
57084       firstInstance = firstInstance_;
57085       return *this;
57086     }
57087 
57088 
operator VkDrawIndexedIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57089     operator VkDrawIndexedIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
57090     {
57091       return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>( this );
57092     }
57093 
operator VkDrawIndexedIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57094     operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT
57095     {
57096       return *reinterpret_cast<VkDrawIndexedIndirectCommand*>( this );
57097     }
57098 
57099 
57100 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57101     auto operator<=>( DrawIndexedIndirectCommand const& ) const = default;
57102 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57103     bool operator==( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
57104     {
57105       return ( indexCount == rhs.indexCount )
57106           && ( instanceCount == rhs.instanceCount )
57107           && ( firstIndex == rhs.firstIndex )
57108           && ( vertexOffset == rhs.vertexOffset )
57109           && ( firstInstance == rhs.firstInstance );
57110     }
57111 
operator !=VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand57112     bool operator!=( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
57113     {
57114       return !operator==( rhs );
57115     }
57116 #endif
57117 
57118 
57119 
57120   public:
57121     uint32_t indexCount = {};
57122     uint32_t instanceCount = {};
57123     uint32_t firstIndex = {};
57124     int32_t vertexOffset = {};
57125     uint32_t firstInstance = {};
57126 
57127   };
57128   static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" );
57129   static_assert( std::is_standard_layout<DrawIndexedIndirectCommand>::value, "struct wrapper is not a standard layout!" );
57130 
57131   struct DrawIndirectCommand
57132   {
57133 
57134 
57135 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand57136     VULKAN_HPP_CONSTEXPR DrawIndirectCommand(uint32_t vertexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstVertex_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
57137     : vertexCount( vertexCount_ ), instanceCount( instanceCount_ ), firstVertex( firstVertex_ ), firstInstance( firstInstance_ )
57138     {}
57139 
57140     VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57141 
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand57142     DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
57143       : DrawIndirectCommand( *reinterpret_cast<DrawIndirectCommand const *>( &rhs ) )
57144     {}
57145 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57146 
57147     VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57148 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand57149     DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
57150     {
57151       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCommand const *>( &rhs );
57152       return *this;
57153     }
57154 
setVertexCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand57155     DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
57156     {
57157       vertexCount = vertexCount_;
57158       return *this;
57159     }
57160 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand57161     DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
57162     {
57163       instanceCount = instanceCount_;
57164       return *this;
57165     }
57166 
setFirstVertexVULKAN_HPP_NAMESPACE::DrawIndirectCommand57167     DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
57168     {
57169       firstVertex = firstVertex_;
57170       return *this;
57171     }
57172 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndirectCommand57173     DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
57174     {
57175       firstInstance = firstInstance_;
57176       return *this;
57177     }
57178 
57179 
operator VkDrawIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndirectCommand57180     operator VkDrawIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
57181     {
57182       return *reinterpret_cast<const VkDrawIndirectCommand*>( this );
57183     }
57184 
operator VkDrawIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndirectCommand57185     operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT
57186     {
57187       return *reinterpret_cast<VkDrawIndirectCommand*>( this );
57188     }
57189 
57190 
57191 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57192     auto operator<=>( DrawIndirectCommand const& ) const = default;
57193 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndirectCommand57194     bool operator==( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
57195     {
57196       return ( vertexCount == rhs.vertexCount )
57197           && ( instanceCount == rhs.instanceCount )
57198           && ( firstVertex == rhs.firstVertex )
57199           && ( firstInstance == rhs.firstInstance );
57200     }
57201 
operator !=VULKAN_HPP_NAMESPACE::DrawIndirectCommand57202     bool operator!=( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
57203     {
57204       return !operator==( rhs );
57205     }
57206 #endif
57207 
57208 
57209 
57210   public:
57211     uint32_t vertexCount = {};
57212     uint32_t instanceCount = {};
57213     uint32_t firstVertex = {};
57214     uint32_t firstInstance = {};
57215 
57216   };
57217   static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" );
57218   static_assert( std::is_standard_layout<DrawIndirectCommand>::value, "struct wrapper is not a standard layout!" );
57219 
57220   struct DrawMeshTasksIndirectCommandNV
57221   {
57222 
57223 
57224 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57225     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV(uint32_t taskCount_ = {}, uint32_t firstTask_ = {}) VULKAN_HPP_NOEXCEPT
57226     : taskCount( taskCount_ ), firstTask( firstTask_ )
57227     {}
57228 
57229     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57230 
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57231     DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
57232       : DrawMeshTasksIndirectCommandNV( *reinterpret_cast<DrawMeshTasksIndirectCommandNV const *>( &rhs ) )
57233     {}
57234 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57235 
57236     VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57237 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57238     DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
57239     {
57240       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const *>( &rhs );
57241       return *this;
57242     }
57243 
setTaskCountVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57244     DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
57245     {
57246       taskCount = taskCount_;
57247       return *this;
57248     }
57249 
setFirstTaskVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57250     DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT
57251     {
57252       firstTask = firstTask_;
57253       return *this;
57254     }
57255 
57256 
operator VkDrawMeshTasksIndirectCommandNV const&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57257     operator VkDrawMeshTasksIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
57258     {
57259       return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>( this );
57260     }
57261 
operator VkDrawMeshTasksIndirectCommandNV&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57262     operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
57263     {
57264       return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>( this );
57265     }
57266 
57267 
57268 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57269     auto operator<=>( DrawMeshTasksIndirectCommandNV const& ) const = default;
57270 #else
operator ==VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57271     bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57272     {
57273       return ( taskCount == rhs.taskCount )
57274           && ( firstTask == rhs.firstTask );
57275     }
57276 
operator !=VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV57277     bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57278     {
57279       return !operator==( rhs );
57280     }
57281 #endif
57282 
57283 
57284 
57285   public:
57286     uint32_t taskCount = {};
57287     uint32_t firstTask = {};
57288 
57289   };
57290   static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" );
57291   static_assert( std::is_standard_layout<DrawMeshTasksIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
57292 
57293   struct DrmFormatModifierPropertiesEXT
57294   {
57295 
57296 
57297 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT57298     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {}) VULKAN_HPP_NOEXCEPT
57299     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
57300     {}
57301 
57302     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57303 
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT57304     DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57305       : DrmFormatModifierPropertiesEXT( *reinterpret_cast<DrmFormatModifierPropertiesEXT const *>( &rhs ) )
57306     {}
57307 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57308 
57309     VULKAN_HPP_CONSTEXPR_14 DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57310 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT57311     DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57312     {
57313       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const *>( &rhs );
57314       return *this;
57315     }
57316 
57317 
operator VkDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT57318     operator VkDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
57319     {
57320       return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT*>( this );
57321     }
57322 
operator VkDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT57323     operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
57324     {
57325       return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT*>( this );
57326     }
57327 
57328 
57329 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57330     auto operator<=>( DrmFormatModifierPropertiesEXT const& ) const = default;
57331 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT57332     bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57333     {
57334       return ( drmFormatModifier == rhs.drmFormatModifier )
57335           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
57336           && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
57337     }
57338 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT57339     bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57340     {
57341       return !operator==( rhs );
57342     }
57343 #endif
57344 
57345 
57346 
57347   public:
57348     uint64_t drmFormatModifier = {};
57349     uint32_t drmFormatModifierPlaneCount = {};
57350     VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {};
57351 
57352   };
57353   static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
57354   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
57355 
57356   struct DrmFormatModifierPropertiesListEXT
57357   {
57358     static const bool allowDuplicate = false;
57359     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT;
57360 
57361 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT57362     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT(uint32_t drmFormatModifierCount_ = {}, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = {}) VULKAN_HPP_NOEXCEPT
57363     : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
57364     {}
57365 
57366     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57367 
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT57368     DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57369       : DrmFormatModifierPropertiesListEXT( *reinterpret_cast<DrmFormatModifierPropertiesListEXT const *>( &rhs ) )
57370     {}
57371 
57372 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT57373     DrmFormatModifierPropertiesListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT> const & drmFormatModifierProperties_ )
57374     : drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) ), pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
57375     {}
57376 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
57377 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57378 
57379     VULKAN_HPP_CONSTEXPR_14 DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57380 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT57381     DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57382     {
57383       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const *>( &rhs );
57384       return *this;
57385     }
57386 
57387 
operator VkDrmFormatModifierPropertiesListEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT57388     operator VkDrmFormatModifierPropertiesListEXT const&() const VULKAN_HPP_NOEXCEPT
57389     {
57390       return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>( this );
57391     }
57392 
operator VkDrmFormatModifierPropertiesListEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT57393     operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT
57394     {
57395       return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>( this );
57396     }
57397 
57398 
57399 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57400     auto operator<=>( DrmFormatModifierPropertiesListEXT const& ) const = default;
57401 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT57402     bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57403     {
57404       return ( sType == rhs.sType )
57405           && ( pNext == rhs.pNext )
57406           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
57407           && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
57408     }
57409 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT57410     bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57411     {
57412       return !operator==( rhs );
57413     }
57414 #endif
57415 
57416 
57417 
57418   public:
57419     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
57420     void* pNext = {};
57421     uint32_t drmFormatModifierCount = {};
57422     VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties = {};
57423 
57424   };
57425   static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" );
57426   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesListEXT>::value, "struct wrapper is not a standard layout!" );
57427 
57428   template <>
57429   struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesListEXT>
57430   {
57431     using Type = DrmFormatModifierPropertiesListEXT;
57432   };
57433 
57434   struct ExportFenceCreateInfo
57435   {
57436     static const bool allowDuplicate = false;
57437     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo;
57438 
57439 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57440     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57441     : handleTypes( handleTypes_ )
57442     {}
57443 
57444     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57445 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57446     ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57447       : ExportFenceCreateInfo( *reinterpret_cast<ExportFenceCreateInfo const *>( &rhs ) )
57448     {}
57449 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57450 
57451     VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57452 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57453     ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57454     {
57455       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const *>( &rhs );
57456       return *this;
57457     }
57458 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57459     ExportFenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57460     {
57461       pNext = pNext_;
57462       return *this;
57463     }
57464 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57465     ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57466     {
57467       handleTypes = handleTypes_;
57468       return *this;
57469     }
57470 
57471 
operator VkExportFenceCreateInfo const&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57472     operator VkExportFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57473     {
57474       return *reinterpret_cast<const VkExportFenceCreateInfo*>( this );
57475     }
57476 
operator VkExportFenceCreateInfo&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57477     operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
57478     {
57479       return *reinterpret_cast<VkExportFenceCreateInfo*>( this );
57480     }
57481 
57482 
57483 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57484     auto operator<=>( ExportFenceCreateInfo const& ) const = default;
57485 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57486     bool operator==( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57487     {
57488       return ( sType == rhs.sType )
57489           && ( pNext == rhs.pNext )
57490           && ( handleTypes == rhs.handleTypes );
57491     }
57492 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo57493     bool operator!=( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57494     {
57495       return !operator==( rhs );
57496     }
57497 #endif
57498 
57499 
57500 
57501   public:
57502     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo;
57503     const void* pNext = {};
57504     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {};
57505 
57506   };
57507   static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" );
57508   static_assert( std::is_standard_layout<ExportFenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
57509 
57510   template <>
57511   struct CppType<StructureType, StructureType::eExportFenceCreateInfo>
57512   {
57513     using Type = ExportFenceCreateInfo;
57514   };
57515   using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
57516 
57517 #ifdef VK_USE_PLATFORM_WIN32_KHR
57518   struct ExportFenceWin32HandleInfoKHR
57519   {
57520     static const bool allowDuplicate = false;
57521     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR;
57522 
57523 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57524     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
57525     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
57526     {}
57527 
57528     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57529 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57530     ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57531       : ExportFenceWin32HandleInfoKHR( *reinterpret_cast<ExportFenceWin32HandleInfoKHR const *>( &rhs ) )
57532     {}
57533 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57534 
57535     VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57536 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57537     ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57538     {
57539       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const *>( &rhs );
57540       return *this;
57541     }
57542 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57543     ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57544     {
57545       pNext = pNext_;
57546       return *this;
57547     }
57548 
setPAttributesVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57549     ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57550     {
57551       pAttributes = pAttributes_;
57552       return *this;
57553     }
57554 
setDwAccessVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57555     ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57556     {
57557       dwAccess = dwAccess_;
57558       return *this;
57559     }
57560 
setNameVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57561     ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
57562     {
57563       name = name_;
57564       return *this;
57565     }
57566 
57567 
operator VkExportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57568     operator VkExportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
57569     {
57570       return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>( this );
57571     }
57572 
operator VkExportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57573     operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
57574     {
57575       return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>( this );
57576     }
57577 
57578 
57579 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57580     auto operator<=>( ExportFenceWin32HandleInfoKHR const& ) const = default;
57581 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57582     bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57583     {
57584       return ( sType == rhs.sType )
57585           && ( pNext == rhs.pNext )
57586           && ( pAttributes == rhs.pAttributes )
57587           && ( dwAccess == rhs.dwAccess )
57588           && ( name == rhs.name );
57589     }
57590 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57591     bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57592     {
57593       return !operator==( rhs );
57594     }
57595 #endif
57596 
57597 
57598 
57599   public:
57600     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
57601     const void* pNext = {};
57602     const SECURITY_ATTRIBUTES* pAttributes = {};
57603     DWORD dwAccess = {};
57604     LPCWSTR name = {};
57605 
57606   };
57607   static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
57608   static_assert( std::is_standard_layout<ExportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
57609 
57610   template <>
57611   struct CppType<StructureType, StructureType::eExportFenceWin32HandleInfoKHR>
57612   {
57613     using Type = ExportFenceWin32HandleInfoKHR;
57614   };
57615 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57616 
57617   struct ExportMemoryAllocateInfo
57618   {
57619     static const bool allowDuplicate = false;
57620     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo;
57621 
57622 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57623     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57624     : handleTypes( handleTypes_ )
57625     {}
57626 
57627     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57628 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57629     ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57630       : ExportMemoryAllocateInfo( *reinterpret_cast<ExportMemoryAllocateInfo const *>( &rhs ) )
57631     {}
57632 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57633 
57634     VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57635 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57636     ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57637     {
57638       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const *>( &rhs );
57639       return *this;
57640     }
57641 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57642     ExportMemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57643     {
57644       pNext = pNext_;
57645       return *this;
57646     }
57647 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57648     ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57649     {
57650       handleTypes = handleTypes_;
57651       return *this;
57652     }
57653 
57654 
operator VkExportMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57655     operator VkExportMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
57656     {
57657       return *reinterpret_cast<const VkExportMemoryAllocateInfo*>( this );
57658     }
57659 
operator VkExportMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57660     operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
57661     {
57662       return *reinterpret_cast<VkExportMemoryAllocateInfo*>( this );
57663     }
57664 
57665 
57666 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57667     auto operator<=>( ExportMemoryAllocateInfo const& ) const = default;
57668 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57669     bool operator==( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57670     {
57671       return ( sType == rhs.sType )
57672           && ( pNext == rhs.pNext )
57673           && ( handleTypes == rhs.handleTypes );
57674     }
57675 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57676     bool operator!=( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57677     {
57678       return !operator==( rhs );
57679     }
57680 #endif
57681 
57682 
57683 
57684   public:
57685     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo;
57686     const void* pNext = {};
57687     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
57688 
57689   };
57690   static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" );
57691   static_assert( std::is_standard_layout<ExportMemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
57692 
57693   template <>
57694   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfo>
57695   {
57696     using Type = ExportMemoryAllocateInfo;
57697   };
57698   using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
57699 
57700   struct ExportMemoryAllocateInfoNV
57701   {
57702     static const bool allowDuplicate = false;
57703     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV;
57704 
57705 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57706     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57707     : handleTypes( handleTypes_ )
57708     {}
57709 
57710     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57711 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57712     ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57713       : ExportMemoryAllocateInfoNV( *reinterpret_cast<ExportMemoryAllocateInfoNV const *>( &rhs ) )
57714     {}
57715 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57716 
57717     VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57718 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57719     ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57720     {
57721       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const *>( &rhs );
57722       return *this;
57723     }
57724 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57725     ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57726     {
57727       pNext = pNext_;
57728       return *this;
57729     }
57730 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57731     ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
57732     {
57733       handleTypes = handleTypes_;
57734       return *this;
57735     }
57736 
57737 
operator VkExportMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57738     operator VkExportMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
57739     {
57740       return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>( this );
57741     }
57742 
operator VkExportMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57743     operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
57744     {
57745       return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>( this );
57746     }
57747 
57748 
57749 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57750     auto operator<=>( ExportMemoryAllocateInfoNV const& ) const = default;
57751 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57752     bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57753     {
57754       return ( sType == rhs.sType )
57755           && ( pNext == rhs.pNext )
57756           && ( handleTypes == rhs.handleTypes );
57757     }
57758 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57759     bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57760     {
57761       return !operator==( rhs );
57762     }
57763 #endif
57764 
57765 
57766 
57767   public:
57768     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
57769     const void* pNext = {};
57770     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
57771 
57772   };
57773   static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
57774   static_assert( std::is_standard_layout<ExportMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
57775 
57776   template <>
57777   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfoNV>
57778   {
57779     using Type = ExportMemoryAllocateInfoNV;
57780   };
57781 
57782 #ifdef VK_USE_PLATFORM_WIN32_KHR
57783   struct ExportMemoryWin32HandleInfoKHR
57784   {
57785     static const bool allowDuplicate = false;
57786     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR;
57787 
57788 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57789     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
57790     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
57791     {}
57792 
57793     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57794 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57795     ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57796       : ExportMemoryWin32HandleInfoKHR( *reinterpret_cast<ExportMemoryWin32HandleInfoKHR const *>( &rhs ) )
57797     {}
57798 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57799 
57800     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57801 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57802     ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57803     {
57804       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const *>( &rhs );
57805       return *this;
57806     }
57807 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57808     ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57809     {
57810       pNext = pNext_;
57811       return *this;
57812     }
57813 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57814     ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57815     {
57816       pAttributes = pAttributes_;
57817       return *this;
57818     }
57819 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57820     ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57821     {
57822       dwAccess = dwAccess_;
57823       return *this;
57824     }
57825 
setNameVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57826     ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
57827     {
57828       name = name_;
57829       return *this;
57830     }
57831 
57832 
operator VkExportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57833     operator VkExportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
57834     {
57835       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>( this );
57836     }
57837 
operator VkExportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57838     operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
57839     {
57840       return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>( this );
57841     }
57842 
57843 
57844 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57845     auto operator<=>( ExportMemoryWin32HandleInfoKHR const& ) const = default;
57846 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57847     bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57848     {
57849       return ( sType == rhs.sType )
57850           && ( pNext == rhs.pNext )
57851           && ( pAttributes == rhs.pAttributes )
57852           && ( dwAccess == rhs.dwAccess )
57853           && ( name == rhs.name );
57854     }
57855 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57856     bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57857     {
57858       return !operator==( rhs );
57859     }
57860 #endif
57861 
57862 
57863 
57864   public:
57865     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
57866     const void* pNext = {};
57867     const SECURITY_ATTRIBUTES* pAttributes = {};
57868     DWORD dwAccess = {};
57869     LPCWSTR name = {};
57870 
57871   };
57872   static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
57873   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
57874 
57875   template <>
57876   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoKHR>
57877   {
57878     using Type = ExportMemoryWin32HandleInfoKHR;
57879   };
57880 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57881 
57882 #ifdef VK_USE_PLATFORM_WIN32_KHR
57883   struct ExportMemoryWin32HandleInfoNV
57884   {
57885     static const bool allowDuplicate = false;
57886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV;
57887 
57888 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57889     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}) VULKAN_HPP_NOEXCEPT
57890     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ )
57891     {}
57892 
57893     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57894 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57895     ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57896       : ExportMemoryWin32HandleInfoNV( *reinterpret_cast<ExportMemoryWin32HandleInfoNV const *>( &rhs ) )
57897     {}
57898 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57899 
57900     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57901 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57902     ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57903     {
57904       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const *>( &rhs );
57905       return *this;
57906     }
57907 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57908     ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57909     {
57910       pNext = pNext_;
57911       return *this;
57912     }
57913 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57914     ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57915     {
57916       pAttributes = pAttributes_;
57917       return *this;
57918     }
57919 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57920     ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57921     {
57922       dwAccess = dwAccess_;
57923       return *this;
57924     }
57925 
57926 
operator VkExportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57927     operator VkExportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
57928     {
57929       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>( this );
57930     }
57931 
operator VkExportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57932     operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
57933     {
57934       return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>( this );
57935     }
57936 
57937 
57938 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57939     auto operator<=>( ExportMemoryWin32HandleInfoNV const& ) const = default;
57940 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57941     bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57942     {
57943       return ( sType == rhs.sType )
57944           && ( pNext == rhs.pNext )
57945           && ( pAttributes == rhs.pAttributes )
57946           && ( dwAccess == rhs.dwAccess );
57947     }
57948 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57949     bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57950     {
57951       return !operator==( rhs );
57952     }
57953 #endif
57954 
57955 
57956 
57957   public:
57958     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
57959     const void* pNext = {};
57960     const SECURITY_ATTRIBUTES* pAttributes = {};
57961     DWORD dwAccess = {};
57962 
57963   };
57964   static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
57965   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
57966 
57967   template <>
57968   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoNV>
57969   {
57970     using Type = ExportMemoryWin32HandleInfoNV;
57971   };
57972 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57973 
57974   struct ExportSemaphoreCreateInfo
57975   {
57976     static const bool allowDuplicate = false;
57977     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo;
57978 
57979 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57980     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57981     : handleTypes( handleTypes_ )
57982     {}
57983 
57984     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57985 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57986     ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57987       : ExportSemaphoreCreateInfo( *reinterpret_cast<ExportSemaphoreCreateInfo const *>( &rhs ) )
57988     {}
57989 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57990 
57991     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57992 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57993     ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57994     {
57995       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const *>( &rhs );
57996       return *this;
57997     }
57998 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57999     ExportSemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58000     {
58001       pNext = pNext_;
58002       return *this;
58003     }
58004 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo58005     ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
58006     {
58007       handleTypes = handleTypes_;
58008       return *this;
58009     }
58010 
58011 
operator VkExportSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo58012     operator VkExportSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
58013     {
58014       return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>( this );
58015     }
58016 
operator VkExportSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo58017     operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
58018     {
58019       return *reinterpret_cast<VkExportSemaphoreCreateInfo*>( this );
58020     }
58021 
58022 
58023 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58024     auto operator<=>( ExportSemaphoreCreateInfo const& ) const = default;
58025 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo58026     bool operator==( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58027     {
58028       return ( sType == rhs.sType )
58029           && ( pNext == rhs.pNext )
58030           && ( handleTypes == rhs.handleTypes );
58031     }
58032 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo58033     bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58034     {
58035       return !operator==( rhs );
58036     }
58037 #endif
58038 
58039 
58040 
58041   public:
58042     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
58043     const void* pNext = {};
58044     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {};
58045 
58046   };
58047   static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" );
58048   static_assert( std::is_standard_layout<ExportSemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
58049 
58050   template <>
58051   struct CppType<StructureType, StructureType::eExportSemaphoreCreateInfo>
58052   {
58053     using Type = ExportSemaphoreCreateInfo;
58054   };
58055   using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
58056 
58057 #ifdef VK_USE_PLATFORM_WIN32_KHR
58058   struct ExportSemaphoreWin32HandleInfoKHR
58059   {
58060     static const bool allowDuplicate = false;
58061     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
58062 
58063 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58064     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
58065     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
58066     {}
58067 
58068     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58069 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58070     ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58071       : ExportSemaphoreWin32HandleInfoKHR( *reinterpret_cast<ExportSemaphoreWin32HandleInfoKHR const *>( &rhs ) )
58072     {}
58073 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58074 
58075     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58076 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58077     ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58078     {
58079       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const *>( &rhs );
58080       return *this;
58081     }
58082 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58083     ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58084     {
58085       pNext = pNext_;
58086       return *this;
58087     }
58088 
setPAttributesVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58089     ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
58090     {
58091       pAttributes = pAttributes_;
58092       return *this;
58093     }
58094 
setDwAccessVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58095     ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
58096     {
58097       dwAccess = dwAccess_;
58098       return *this;
58099     }
58100 
setNameVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58101     ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
58102     {
58103       name = name_;
58104       return *this;
58105     }
58106 
58107 
operator VkExportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58108     operator VkExportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
58109     {
58110       return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>( this );
58111     }
58112 
operator VkExportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58113     operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
58114     {
58115       return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>( this );
58116     }
58117 
58118 
58119 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58120     auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const& ) const = default;
58121 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58122     bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
58123     {
58124       return ( sType == rhs.sType )
58125           && ( pNext == rhs.pNext )
58126           && ( pAttributes == rhs.pAttributes )
58127           && ( dwAccess == rhs.dwAccess )
58128           && ( name == rhs.name );
58129     }
58130 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR58131     bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
58132     {
58133       return !operator==( rhs );
58134     }
58135 #endif
58136 
58137 
58138 
58139   public:
58140     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
58141     const void* pNext = {};
58142     const SECURITY_ATTRIBUTES* pAttributes = {};
58143     DWORD dwAccess = {};
58144     LPCWSTR name = {};
58145 
58146   };
58147   static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
58148   static_assert( std::is_standard_layout<ExportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
58149 
58150   template <>
58151   struct CppType<StructureType, StructureType::eExportSemaphoreWin32HandleInfoKHR>
58152   {
58153     using Type = ExportSemaphoreWin32HandleInfoKHR;
58154   };
58155 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
58156 
58157 #ifdef VK_USE_PLATFORM_ANDROID_KHR
58158   struct ExternalFormatANDROID
58159   {
58160     static const bool allowDuplicate = false;
58161     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID;
58162 
58163 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID58164     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID(uint64_t externalFormat_ = {}) VULKAN_HPP_NOEXCEPT
58165     : externalFormat( externalFormat_ )
58166     {}
58167 
58168     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58169 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID58170     ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
58171       : ExternalFormatANDROID( *reinterpret_cast<ExternalFormatANDROID const *>( &rhs ) )
58172     {}
58173 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58174 
58175     VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58176 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID58177     ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
58178     {
58179       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const *>( &rhs );
58180       return *this;
58181     }
58182 
setPNextVULKAN_HPP_NAMESPACE::ExternalFormatANDROID58183     ExternalFormatANDROID & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
58184     {
58185       pNext = pNext_;
58186       return *this;
58187     }
58188 
setExternalFormatVULKAN_HPP_NAMESPACE::ExternalFormatANDROID58189     ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
58190     {
58191       externalFormat = externalFormat_;
58192       return *this;
58193     }
58194 
58195 
operator VkExternalFormatANDROID const&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID58196     operator VkExternalFormatANDROID const&() const VULKAN_HPP_NOEXCEPT
58197     {
58198       return *reinterpret_cast<const VkExternalFormatANDROID*>( this );
58199     }
58200 
operator VkExternalFormatANDROID&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID58201     operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT
58202     {
58203       return *reinterpret_cast<VkExternalFormatANDROID*>( this );
58204     }
58205 
58206 
58207 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58208     auto operator<=>( ExternalFormatANDROID const& ) const = default;
58209 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFormatANDROID58210     bool operator==( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
58211     {
58212       return ( sType == rhs.sType )
58213           && ( pNext == rhs.pNext )
58214           && ( externalFormat == rhs.externalFormat );
58215     }
58216 
operator !=VULKAN_HPP_NAMESPACE::ExternalFormatANDROID58217     bool operator!=( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
58218     {
58219       return !operator==( rhs );
58220     }
58221 #endif
58222 
58223 
58224 
58225   public:
58226     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID;
58227     void* pNext = {};
58228     uint64_t externalFormat = {};
58229 
58230   };
58231   static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" );
58232   static_assert( std::is_standard_layout<ExternalFormatANDROID>::value, "struct wrapper is not a standard layout!" );
58233 
58234   template <>
58235   struct CppType<StructureType, StructureType::eExternalFormatANDROID>
58236   {
58237     using Type = ExternalFormatANDROID;
58238   };
58239 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
58240 
58241   struct ExternalImageFormatProperties
58242   {
58243     static const bool allowDuplicate = false;
58244     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties;
58245 
58246 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties58247     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
58248     : externalMemoryProperties( externalMemoryProperties_ )
58249     {}
58250 
58251     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58252 
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties58253     ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
58254       : ExternalImageFormatProperties( *reinterpret_cast<ExternalImageFormatProperties const *>( &rhs ) )
58255     {}
58256 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58257 
58258     VULKAN_HPP_CONSTEXPR_14 ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58259 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties58260     ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
58261     {
58262       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const *>( &rhs );
58263       return *this;
58264     }
58265 
58266 
operator VkExternalImageFormatProperties const&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties58267     operator VkExternalImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
58268     {
58269       return *reinterpret_cast<const VkExternalImageFormatProperties*>( this );
58270     }
58271 
operator VkExternalImageFormatProperties&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties58272     operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT
58273     {
58274       return *reinterpret_cast<VkExternalImageFormatProperties*>( this );
58275     }
58276 
58277 
58278 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58279     auto operator<=>( ExternalImageFormatProperties const& ) const = default;
58280 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties58281     bool operator==( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
58282     {
58283       return ( sType == rhs.sType )
58284           && ( pNext == rhs.pNext )
58285           && ( externalMemoryProperties == rhs.externalMemoryProperties );
58286     }
58287 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties58288     bool operator!=( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
58289     {
58290       return !operator==( rhs );
58291     }
58292 #endif
58293 
58294 
58295 
58296   public:
58297     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties;
58298     void* pNext = {};
58299     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
58300 
58301   };
58302   static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" );
58303   static_assert( std::is_standard_layout<ExternalImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
58304 
58305   template <>
58306   struct CppType<StructureType, StructureType::eExternalImageFormatProperties>
58307   {
58308     using Type = ExternalImageFormatProperties;
58309   };
58310   using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
58311 
58312   struct ExternalMemoryBufferCreateInfo
58313   {
58314     static const bool allowDuplicate = false;
58315     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo;
58316 
58317 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58318     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
58319     : handleTypes( handleTypes_ )
58320     {}
58321 
58322     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58323 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58324     ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58325       : ExternalMemoryBufferCreateInfo( *reinterpret_cast<ExternalMemoryBufferCreateInfo const *>( &rhs ) )
58326     {}
58327 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58328 
58329     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58330 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58331     ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58332     {
58333       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const *>( &rhs );
58334       return *this;
58335     }
58336 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58337     ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58338     {
58339       pNext = pNext_;
58340       return *this;
58341     }
58342 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58343     ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
58344     {
58345       handleTypes = handleTypes_;
58346       return *this;
58347     }
58348 
58349 
operator VkExternalMemoryBufferCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58350     operator VkExternalMemoryBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
58351     {
58352       return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>( this );
58353     }
58354 
operator VkExternalMemoryBufferCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58355     operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
58356     {
58357       return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>( this );
58358     }
58359 
58360 
58361 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58362     auto operator<=>( ExternalMemoryBufferCreateInfo const& ) const = default;
58363 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58364     bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58365     {
58366       return ( sType == rhs.sType )
58367           && ( pNext == rhs.pNext )
58368           && ( handleTypes == rhs.handleTypes );
58369     }
58370 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo58371     bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58372     {
58373       return !operator==( rhs );
58374     }
58375 #endif
58376 
58377 
58378 
58379   public:
58380     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
58381     const void* pNext = {};
58382     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
58383 
58384   };
58385   static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" );
58386   static_assert( std::is_standard_layout<ExternalMemoryBufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
58387 
58388   template <>
58389   struct CppType<StructureType, StructureType::eExternalMemoryBufferCreateInfo>
58390   {
58391     using Type = ExternalMemoryBufferCreateInfo;
58392   };
58393   using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
58394 
58395   struct ExternalMemoryImageCreateInfo
58396   {
58397     static const bool allowDuplicate = false;
58398     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo;
58399 
58400 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58401     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
58402     : handleTypes( handleTypes_ )
58403     {}
58404 
58405     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58406 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58407     ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58408       : ExternalMemoryImageCreateInfo( *reinterpret_cast<ExternalMemoryImageCreateInfo const *>( &rhs ) )
58409     {}
58410 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58411 
58412     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58413 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58414     ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58415     {
58416       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const *>( &rhs );
58417       return *this;
58418     }
58419 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58420     ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58421     {
58422       pNext = pNext_;
58423       return *this;
58424     }
58425 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58426     ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
58427     {
58428       handleTypes = handleTypes_;
58429       return *this;
58430     }
58431 
58432 
operator VkExternalMemoryImageCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58433     operator VkExternalMemoryImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
58434     {
58435       return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>( this );
58436     }
58437 
operator VkExternalMemoryImageCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58438     operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT
58439     {
58440       return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>( this );
58441     }
58442 
58443 
58444 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58445     auto operator<=>( ExternalMemoryImageCreateInfo const& ) const = default;
58446 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58447     bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58448     {
58449       return ( sType == rhs.sType )
58450           && ( pNext == rhs.pNext )
58451           && ( handleTypes == rhs.handleTypes );
58452     }
58453 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58454     bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58455     {
58456       return !operator==( rhs );
58457     }
58458 #endif
58459 
58460 
58461 
58462   public:
58463     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
58464     const void* pNext = {};
58465     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
58466 
58467   };
58468   static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" );
58469   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
58470 
58471   template <>
58472   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfo>
58473   {
58474     using Type = ExternalMemoryImageCreateInfo;
58475   };
58476   using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
58477 
58478   struct ExternalMemoryImageCreateInfoNV
58479   {
58480     static const bool allowDuplicate = false;
58481     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV;
58482 
58483 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58484     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
58485     : handleTypes( handleTypes_ )
58486     {}
58487 
58488     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58489 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58490     ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58491       : ExternalMemoryImageCreateInfoNV( *reinterpret_cast<ExternalMemoryImageCreateInfoNV const *>( &rhs ) )
58492     {}
58493 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58494 
58495     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58496 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58497     ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58498     {
58499       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const *>( &rhs );
58500       return *this;
58501     }
58502 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58503     ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58504     {
58505       pNext = pNext_;
58506       return *this;
58507     }
58508 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58509     ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
58510     {
58511       handleTypes = handleTypes_;
58512       return *this;
58513     }
58514 
58515 
operator VkExternalMemoryImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58516     operator VkExternalMemoryImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
58517     {
58518       return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>( this );
58519     }
58520 
operator VkExternalMemoryImageCreateInfoNV&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58521     operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
58522     {
58523       return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>( this );
58524     }
58525 
58526 
58527 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58528     auto operator<=>( ExternalMemoryImageCreateInfoNV const& ) const = default;
58529 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58530     bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58531     {
58532       return ( sType == rhs.sType )
58533           && ( pNext == rhs.pNext )
58534           && ( handleTypes == rhs.handleTypes );
58535     }
58536 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58537     bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58538     {
58539       return !operator==( rhs );
58540     }
58541 #endif
58542 
58543 
58544 
58545   public:
58546     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
58547     const void* pNext = {};
58548     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
58549 
58550   };
58551   static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" );
58552   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
58553 
58554   template <>
58555   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfoNV>
58556   {
58557     using Type = ExternalMemoryImageCreateInfoNV;
58558   };
58559 
58560   struct FilterCubicImageViewImageFormatPropertiesEXT
58561   {
58562     static const bool allowDuplicate = false;
58563     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
58564 
58565 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58566     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {}) VULKAN_HPP_NOEXCEPT
58567     : filterCubic( filterCubic_ ), filterCubicMinmax( filterCubicMinmax_ )
58568     {}
58569 
58570     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58571 
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58572     FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58573       : FilterCubicImageViewImageFormatPropertiesEXT( *reinterpret_cast<FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs ) )
58574     {}
58575 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58576 
58577     VULKAN_HPP_CONSTEXPR_14 FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58578 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58579     FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58580     {
58581       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs );
58582       return *this;
58583     }
58584 
58585 
operator VkFilterCubicImageViewImageFormatPropertiesEXT const&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58586     operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
58587     {
58588       return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
58589     }
58590 
operator VkFilterCubicImageViewImageFormatPropertiesEXT&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58591     operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT
58592     {
58593       return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
58594     }
58595 
58596 
58597 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58598     auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const& ) const = default;
58599 #else
operator ==VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58600     bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58601     {
58602       return ( sType == rhs.sType )
58603           && ( pNext == rhs.pNext )
58604           && ( filterCubic == rhs.filterCubic )
58605           && ( filterCubicMinmax == rhs.filterCubicMinmax );
58606     }
58607 
operator !=VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58608     bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58609     {
58610       return !operator==( rhs );
58611     }
58612 #endif
58613 
58614 
58615 
58616   public:
58617     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
58618     void* pNext = {};
58619     VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {};
58620     VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {};
58621 
58622   };
58623   static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" );
58624   static_assert( std::is_standard_layout<FilterCubicImageViewImageFormatPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
58625 
58626   template <>
58627   struct CppType<StructureType, StructureType::eFilterCubicImageViewImageFormatPropertiesEXT>
58628   {
58629     using Type = FilterCubicImageViewImageFormatPropertiesEXT;
58630   };
58631 
58632   struct FragmentShadingRateAttachmentInfoKHR
58633   {
58634     static const bool allowDuplicate = false;
58635     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
58636 
58637 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58638     VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR(const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ = {}, VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {}) VULKAN_HPP_NOEXCEPT
58639     : pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ ), shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
58640     {}
58641 
58642     VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58643 
FragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58644     FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58645       : FragmentShadingRateAttachmentInfoKHR( *reinterpret_cast<FragmentShadingRateAttachmentInfoKHR const *>( &rhs ) )
58646     {}
58647 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58648 
58649     VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR & operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58650 
operator =VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58651     FragmentShadingRateAttachmentInfoKHR & operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58652     {
58653       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR const *>( &rhs );
58654       return *this;
58655     }
58656 
setPNextVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58657     FragmentShadingRateAttachmentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58658     {
58659       pNext = pNext_;
58660       return *this;
58661     }
58662 
setPFragmentShadingRateAttachmentVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58663     FragmentShadingRateAttachmentInfoKHR & setPFragmentShadingRateAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT
58664     {
58665       pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_;
58666       return *this;
58667     }
58668 
setShadingRateAttachmentTexelSizeVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58669     FragmentShadingRateAttachmentInfoKHR & setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
58670     {
58671       shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
58672       return *this;
58673     }
58674 
58675 
operator VkFragmentShadingRateAttachmentInfoKHR const&VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58676     operator VkFragmentShadingRateAttachmentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
58677     {
58678       return *reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>( this );
58679     }
58680 
operator VkFragmentShadingRateAttachmentInfoKHR&VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58681     operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
58682     {
58683       return *reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>( this );
58684     }
58685 
58686 
58687 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58688     auto operator<=>( FragmentShadingRateAttachmentInfoKHR const& ) const = default;
58689 #else
operator ==VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58690     bool operator==( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
58691     {
58692       return ( sType == rhs.sType )
58693           && ( pNext == rhs.pNext )
58694           && ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment )
58695           && ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
58696     }
58697 
operator !=VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58698     bool operator!=( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
58699     {
58700       return !operator==( rhs );
58701     }
58702 #endif
58703 
58704 
58705 
58706   public:
58707     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
58708     const void* pNext = {};
58709     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment = {};
58710     VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
58711 
58712   };
58713   static_assert( sizeof( FragmentShadingRateAttachmentInfoKHR ) == sizeof( VkFragmentShadingRateAttachmentInfoKHR ), "struct and wrapper have different size!" );
58714   static_assert( std::is_standard_layout<FragmentShadingRateAttachmentInfoKHR>::value, "struct wrapper is not a standard layout!" );
58715 
58716   template <>
58717   struct CppType<StructureType, StructureType::eFragmentShadingRateAttachmentInfoKHR>
58718   {
58719     using Type = FragmentShadingRateAttachmentInfoKHR;
58720   };
58721 
58722   struct FramebufferAttachmentImageInfo
58723   {
58724     static const bool allowDuplicate = false;
58725     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo;
58726 
58727 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58728     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
58729     : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
58730     {}
58731 
58732     VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58733 
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58734     FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58735       : FramebufferAttachmentImageInfo( *reinterpret_cast<FramebufferAttachmentImageInfo const *>( &rhs ) )
58736     {}
58737 
58738 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58739     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_ )
58740     : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
58741     {}
58742 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58743 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58744 
58745     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58746 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58747     FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58748     {
58749       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const *>( &rhs );
58750       return *this;
58751     }
58752 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58753     FramebufferAttachmentImageInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58754     {
58755       pNext = pNext_;
58756       return *this;
58757     }
58758 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58759     FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
58760     {
58761       flags = flags_;
58762       return *this;
58763     }
58764 
setUsageVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58765     FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
58766     {
58767       usage = usage_;
58768       return *this;
58769     }
58770 
setWidthVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58771     FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
58772     {
58773       width = width_;
58774       return *this;
58775     }
58776 
setHeightVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58777     FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
58778     {
58779       height = height_;
58780       return *this;
58781     }
58782 
setLayerCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58783     FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
58784     {
58785       layerCount = layerCount_;
58786       return *this;
58787     }
58788 
setViewFormatCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58789     FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
58790     {
58791       viewFormatCount = viewFormatCount_;
58792       return *this;
58793     }
58794 
setPViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58795     FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
58796     {
58797       pViewFormats = pViewFormats_;
58798       return *this;
58799     }
58800 
58801 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58802     FramebufferAttachmentImageInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
58803     {
58804       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
58805       pViewFormats = viewFormats_.data();
58806       return *this;
58807     }
58808 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58809 
58810 
operator VkFramebufferAttachmentImageInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58811     operator VkFramebufferAttachmentImageInfo const&() const VULKAN_HPP_NOEXCEPT
58812     {
58813       return *reinterpret_cast<const VkFramebufferAttachmentImageInfo*>( this );
58814     }
58815 
operator VkFramebufferAttachmentImageInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58816     operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT
58817     {
58818       return *reinterpret_cast<VkFramebufferAttachmentImageInfo*>( this );
58819     }
58820 
58821 
58822 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58823     auto operator<=>( FramebufferAttachmentImageInfo const& ) const = default;
58824 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58825     bool operator==( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58826     {
58827       return ( sType == rhs.sType )
58828           && ( pNext == rhs.pNext )
58829           && ( flags == rhs.flags )
58830           && ( usage == rhs.usage )
58831           && ( width == rhs.width )
58832           && ( height == rhs.height )
58833           && ( layerCount == rhs.layerCount )
58834           && ( viewFormatCount == rhs.viewFormatCount )
58835           && ( pViewFormats == rhs.pViewFormats );
58836     }
58837 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58838     bool operator!=( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58839     {
58840       return !operator==( rhs );
58841     }
58842 #endif
58843 
58844 
58845 
58846   public:
58847     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo;
58848     const void* pNext = {};
58849     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
58850     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
58851     uint32_t width = {};
58852     uint32_t height = {};
58853     uint32_t layerCount = {};
58854     uint32_t viewFormatCount = {};
58855     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
58856 
58857   };
58858   static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), "struct and wrapper have different size!" );
58859   static_assert( std::is_standard_layout<FramebufferAttachmentImageInfo>::value, "struct wrapper is not a standard layout!" );
58860 
58861   template <>
58862   struct CppType<StructureType, StructureType::eFramebufferAttachmentImageInfo>
58863   {
58864     using Type = FramebufferAttachmentImageInfo;
58865   };
58866   using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
58867 
58868   struct FramebufferAttachmentsCreateInfo
58869   {
58870     static const bool allowDuplicate = false;
58871     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo;
58872 
58873 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58874     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo(uint32_t attachmentImageInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ = {}) VULKAN_HPP_NOEXCEPT
58875     : attachmentImageInfoCount( attachmentImageInfoCount_ ), pAttachmentImageInfos( pAttachmentImageInfos_ )
58876     {}
58877 
58878     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58879 
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58880     FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58881       : FramebufferAttachmentsCreateInfo( *reinterpret_cast<FramebufferAttachmentsCreateInfo const *>( &rhs ) )
58882     {}
58883 
58884 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58885     FramebufferAttachmentsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ )
58886     : attachmentImageInfoCount( static_cast<uint32_t>( attachmentImageInfos_.size() ) ), pAttachmentImageInfos( attachmentImageInfos_.data() )
58887     {}
58888 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58889 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58890 
58891     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58892 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58893     FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58894     {
58895       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const *>( &rhs );
58896       return *this;
58897     }
58898 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58899     FramebufferAttachmentsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58900     {
58901       pNext = pNext_;
58902       return *this;
58903     }
58904 
setAttachmentImageInfoCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58905     FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT
58906     {
58907       attachmentImageInfoCount = attachmentImageInfoCount_;
58908       return *this;
58909     }
58910 
setPAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58911     FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
58912     {
58913       pAttachmentImageInfos = pAttachmentImageInfos_;
58914       return *this;
58915     }
58916 
58917 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58918     FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
58919     {
58920       attachmentImageInfoCount = static_cast<uint32_t>( attachmentImageInfos_.size() );
58921       pAttachmentImageInfos = attachmentImageInfos_.data();
58922       return *this;
58923     }
58924 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58925 
58926 
operator VkFramebufferAttachmentsCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58927     operator VkFramebufferAttachmentsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
58928     {
58929       return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>( this );
58930     }
58931 
operator VkFramebufferAttachmentsCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58932     operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT
58933     {
58934       return *reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>( this );
58935     }
58936 
58937 
58938 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58939     auto operator<=>( FramebufferAttachmentsCreateInfo const& ) const = default;
58940 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58941     bool operator==( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58942     {
58943       return ( sType == rhs.sType )
58944           && ( pNext == rhs.pNext )
58945           && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount )
58946           && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
58947     }
58948 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58949     bool operator!=( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58950     {
58951       return !operator==( rhs );
58952     }
58953 #endif
58954 
58955 
58956 
58957   public:
58958     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo;
58959     const void* pNext = {};
58960     uint32_t attachmentImageInfoCount = {};
58961     const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos = {};
58962 
58963   };
58964   static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), "struct and wrapper have different size!" );
58965   static_assert( std::is_standard_layout<FramebufferAttachmentsCreateInfo>::value, "struct wrapper is not a standard layout!" );
58966 
58967   template <>
58968   struct CppType<StructureType, StructureType::eFramebufferAttachmentsCreateInfo>
58969   {
58970     using Type = FramebufferAttachmentsCreateInfo;
58971   };
58972   using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
58973 
58974   struct GraphicsShaderGroupCreateInfoNV
58975   {
58976     static const bool allowDuplicate = false;
58977     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV;
58978 
58979 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58980     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
58981     : stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
58982     {}
58983 
58984     VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58985 
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58986     GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58987       : GraphicsShaderGroupCreateInfoNV( *reinterpret_cast<GraphicsShaderGroupCreateInfoNV const *>( &rhs ) )
58988     {}
58989 
58990 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58991     GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {} )
58992     : stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
58993     {}
58994 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58995 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58996 
58997     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58998 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58999     GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
59000     {
59001       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const *>( &rhs );
59002       return *this;
59003     }
59004 
setPNextVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59005     GraphicsShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59006     {
59007       pNext = pNext_;
59008       return *this;
59009     }
59010 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59011     GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
59012     {
59013       stageCount = stageCount_;
59014       return *this;
59015     }
59016 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59017     GraphicsShaderGroupCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
59018     {
59019       pStages = pStages_;
59020       return *this;
59021     }
59022 
59023 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59024     GraphicsShaderGroupCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
59025     {
59026       stageCount = static_cast<uint32_t>( stages_.size() );
59027       pStages = stages_.data();
59028       return *this;
59029     }
59030 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59031 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59032     GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
59033     {
59034       pVertexInputState = pVertexInputState_;
59035       return *this;
59036     }
59037 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59038     GraphicsShaderGroupCreateInfoNV & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
59039     {
59040       pTessellationState = pTessellationState_;
59041       return *this;
59042     }
59043 
59044 
operator VkGraphicsShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59045     operator VkGraphicsShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
59046     {
59047       return *reinterpret_cast<const VkGraphicsShaderGroupCreateInfoNV*>( this );
59048     }
59049 
operator VkGraphicsShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59050     operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
59051     {
59052       return *reinterpret_cast<VkGraphicsShaderGroupCreateInfoNV*>( this );
59053     }
59054 
59055 
59056 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59057     auto operator<=>( GraphicsShaderGroupCreateInfoNV const& ) const = default;
59058 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59059     bool operator==( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
59060     {
59061       return ( sType == rhs.sType )
59062           && ( pNext == rhs.pNext )
59063           && ( stageCount == rhs.stageCount )
59064           && ( pStages == rhs.pStages )
59065           && ( pVertexInputState == rhs.pVertexInputState )
59066           && ( pTessellationState == rhs.pTessellationState );
59067     }
59068 
operator !=VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV59069     bool operator!=( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
59070     {
59071       return !operator==( rhs );
59072     }
59073 #endif
59074 
59075 
59076 
59077   public:
59078     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV;
59079     const void* pNext = {};
59080     uint32_t stageCount = {};
59081     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
59082     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
59083     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
59084 
59085   };
59086   static_assert( sizeof( GraphicsShaderGroupCreateInfoNV ) == sizeof( VkGraphicsShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
59087   static_assert( std::is_standard_layout<GraphicsShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
59088 
59089   template <>
59090   struct CppType<StructureType, StructureType::eGraphicsShaderGroupCreateInfoNV>
59091   {
59092     using Type = GraphicsShaderGroupCreateInfoNV;
59093   };
59094 
59095   struct GraphicsPipelineShaderGroupsCreateInfoNV
59096   {
59097     static const bool allowDuplicate = false;
59098     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
59099 
59100 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59101     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
59102     : groupCount( groupCount_ ), pGroups( pGroups_ ), pipelineCount( pipelineCount_ ), pPipelines( pPipelines_ )
59103     {}
59104 
59105     VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59106 
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59107     GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
59108       : GraphicsPipelineShaderGroupsCreateInfoNV( *reinterpret_cast<GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs ) )
59109     {}
59110 
59111 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59112     GraphicsPipelineShaderGroupsCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ = {} )
59113     : groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), pipelineCount( static_cast<uint32_t>( pipelines_.size() ) ), pPipelines( pipelines_.data() )
59114     {}
59115 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59116 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59117 
59118     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59119 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59120     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
59121     {
59122       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs );
59123       return *this;
59124     }
59125 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59126     GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59127     {
59128       pNext = pNext_;
59129       return *this;
59130     }
59131 
setGroupCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59132     GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
59133     {
59134       groupCount = groupCount_;
59135       return *this;
59136     }
59137 
setPGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59138     GraphicsPipelineShaderGroupsCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
59139     {
59140       pGroups = pGroups_;
59141       return *this;
59142     }
59143 
59144 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59145     GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
59146     {
59147       groupCount = static_cast<uint32_t>( groups_.size() );
59148       pGroups = groups_.data();
59149       return *this;
59150     }
59151 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59152 
setPipelineCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59153     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
59154     {
59155       pipelineCount = pipelineCount_;
59156       return *this;
59157     }
59158 
setPPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59159     GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ ) VULKAN_HPP_NOEXCEPT
59160     {
59161       pPipelines = pPipelines_;
59162       return *this;
59163     }
59164 
59165 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59166     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ ) VULKAN_HPP_NOEXCEPT
59167     {
59168       pipelineCount = static_cast<uint32_t>( pipelines_.size() );
59169       pPipelines = pipelines_.data();
59170       return *this;
59171     }
59172 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59173 
59174 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59175     operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
59176     {
59177       return *reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
59178     }
59179 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59180     operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT
59181     {
59182       return *reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
59183     }
59184 
59185 
59186 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59187     auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const& ) const = default;
59188 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59189     bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
59190     {
59191       return ( sType == rhs.sType )
59192           && ( pNext == rhs.pNext )
59193           && ( groupCount == rhs.groupCount )
59194           && ( pGroups == rhs.pGroups )
59195           && ( pipelineCount == rhs.pipelineCount )
59196           && ( pPipelines == rhs.pPipelines );
59197     }
59198 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV59199     bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
59200     {
59201       return !operator==( rhs );
59202     }
59203 #endif
59204 
59205 
59206 
59207   public:
59208     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
59209     const void* pNext = {};
59210     uint32_t groupCount = {};
59211     const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups = {};
59212     uint32_t pipelineCount = {};
59213     const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines = {};
59214 
59215   };
59216   static_assert( sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) == sizeof( VkGraphicsPipelineShaderGroupsCreateInfoNV ), "struct and wrapper have different size!" );
59217   static_assert( std::is_standard_layout<GraphicsPipelineShaderGroupsCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
59218 
59219   template <>
59220   struct CppType<StructureType, StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV>
59221   {
59222     using Type = GraphicsPipelineShaderGroupsCreateInfoNV;
59223   };
59224 
59225   struct HeadlessSurfaceCreateInfoEXT
59226   {
59227     static const bool allowDuplicate = false;
59228     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT;
59229 
59230 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59231     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
59232     : flags( flags_ )
59233     {}
59234 
59235     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59236 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59237     HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59238       : HeadlessSurfaceCreateInfoEXT( *reinterpret_cast<HeadlessSurfaceCreateInfoEXT const *>( &rhs ) )
59239     {}
59240 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59241 
59242     VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59243 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59244     HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59245     {
59246       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const *>( &rhs );
59247       return *this;
59248     }
59249 
setPNextVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59250     HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59251     {
59252       pNext = pNext_;
59253       return *this;
59254     }
59255 
setFlagsVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59256     HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
59257     {
59258       flags = flags_;
59259       return *this;
59260     }
59261 
59262 
operator VkHeadlessSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59263     operator VkHeadlessSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
59264     {
59265       return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( this );
59266     }
59267 
operator VkHeadlessSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59268     operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
59269     {
59270       return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>( this );
59271     }
59272 
59273 
59274 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59275     auto operator<=>( HeadlessSurfaceCreateInfoEXT const& ) const = default;
59276 #else
operator ==VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59277     bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59278     {
59279       return ( sType == rhs.sType )
59280           && ( pNext == rhs.pNext )
59281           && ( flags == rhs.flags );
59282     }
59283 
operator !=VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT59284     bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59285     {
59286       return !operator==( rhs );
59287     }
59288 #endif
59289 
59290 
59291 
59292   public:
59293     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
59294     const void* pNext = {};
59295     VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {};
59296 
59297   };
59298   static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
59299   static_assert( std::is_standard_layout<HeadlessSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
59300 
59301   template <>
59302   struct CppType<StructureType, StructureType::eHeadlessSurfaceCreateInfoEXT>
59303   {
59304     using Type = HeadlessSurfaceCreateInfoEXT;
59305   };
59306 
59307 #ifdef VK_USE_PLATFORM_IOS_MVK
59308   struct IOSSurfaceCreateInfoMVK
59309   {
59310     static const bool allowDuplicate = false;
59311     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK;
59312 
59313 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59314     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT
59315     : flags( flags_ ), pView( pView_ )
59316     {}
59317 
59318     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59319 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59320     IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
59321       : IOSSurfaceCreateInfoMVK( *reinterpret_cast<IOSSurfaceCreateInfoMVK const *>( &rhs ) )
59322     {}
59323 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59324 
59325     VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59326 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59327     IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
59328     {
59329       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const *>( &rhs );
59330       return *this;
59331     }
59332 
setPNextVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59333     IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59334     {
59335       pNext = pNext_;
59336       return *this;
59337     }
59338 
setFlagsVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59339     IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
59340     {
59341       flags = flags_;
59342       return *this;
59343     }
59344 
setPViewVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59345     IOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
59346     {
59347       pView = pView_;
59348       return *this;
59349     }
59350 
59351 
operator VkIOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59352     operator VkIOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
59353     {
59354       return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( this );
59355     }
59356 
operator VkIOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59357     operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
59358     {
59359       return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>( this );
59360     }
59361 
59362 
59363 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59364     auto operator<=>( IOSSurfaceCreateInfoMVK const& ) const = default;
59365 #else
operator ==VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59366     bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
59367     {
59368       return ( sType == rhs.sType )
59369           && ( pNext == rhs.pNext )
59370           && ( flags == rhs.flags )
59371           && ( pView == rhs.pView );
59372     }
59373 
operator !=VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK59374     bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
59375     {
59376       return !operator==( rhs );
59377     }
59378 #endif
59379 
59380 
59381 
59382   public:
59383     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
59384     const void* pNext = {};
59385     VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {};
59386     const void* pView = {};
59387 
59388   };
59389   static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
59390   static_assert( std::is_standard_layout<IOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
59391 
59392   template <>
59393   struct CppType<StructureType, StructureType::eIosSurfaceCreateInfoMVK>
59394   {
59395     using Type = IOSSurfaceCreateInfoMVK;
59396   };
59397 #endif /*VK_USE_PLATFORM_IOS_MVK*/
59398 
59399   struct ImageDrmFormatModifierExplicitCreateInfoEXT
59400   {
59401     static const bool allowDuplicate = false;
59402     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
59403 
59404 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59405     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ = {}) VULKAN_HPP_NOEXCEPT
59406     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), pPlaneLayouts( pPlaneLayouts_ )
59407     {}
59408 
59409     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59410 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59411     ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59412       : ImageDrmFormatModifierExplicitCreateInfoEXT( *reinterpret_cast<ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs ) )
59413     {}
59414 
59415 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59416     ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ )
59417     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( static_cast<uint32_t>( planeLayouts_.size() ) ), pPlaneLayouts( planeLayouts_.data() )
59418     {}
59419 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59420 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59421 
59422     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59423 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59424     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59425     {
59426       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs );
59427       return *this;
59428     }
59429 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59430     ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59431     {
59432       pNext = pNext_;
59433       return *this;
59434     }
59435 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59436     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
59437     {
59438       drmFormatModifier = drmFormatModifier_;
59439       return *this;
59440     }
59441 
setDrmFormatModifierPlaneCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59442     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
59443     {
59444       drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
59445       return *this;
59446     }
59447 
setPPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59448     ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
59449     {
59450       pPlaneLayouts = pPlaneLayouts_;
59451       return *this;
59452     }
59453 
59454 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59455     ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT
59456     {
59457       drmFormatModifierPlaneCount = static_cast<uint32_t>( planeLayouts_.size() );
59458       pPlaneLayouts = planeLayouts_.data();
59459       return *this;
59460     }
59461 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59462 
59463 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59464     operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
59465     {
59466       return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
59467     }
59468 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59469     operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
59470     {
59471       return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
59472     }
59473 
59474 
59475 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59476     auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const& ) const = default;
59477 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59478     bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59479     {
59480       return ( sType == rhs.sType )
59481           && ( pNext == rhs.pNext )
59482           && ( drmFormatModifier == rhs.drmFormatModifier )
59483           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
59484           && ( pPlaneLayouts == rhs.pPlaneLayouts );
59485     }
59486 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59487     bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59488     {
59489       return !operator==( rhs );
59490     }
59491 #endif
59492 
59493 
59494 
59495   public:
59496     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
59497     const void* pNext = {};
59498     uint64_t drmFormatModifier = {};
59499     uint32_t drmFormatModifierPlaneCount = {};
59500     const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts = {};
59501 
59502   };
59503   static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" );
59504   static_assert( std::is_standard_layout<ImageDrmFormatModifierExplicitCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
59505 
59506   template <>
59507   struct CppType<StructureType, StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT>
59508   {
59509     using Type = ImageDrmFormatModifierExplicitCreateInfoEXT;
59510   };
59511 
59512   struct ImageDrmFormatModifierListCreateInfoEXT
59513   {
59514     static const bool allowDuplicate = false;
59515     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
59516 
59517 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59518     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT(uint32_t drmFormatModifierCount_ = {}, const uint64_t* pDrmFormatModifiers_ = {}) VULKAN_HPP_NOEXCEPT
59519     : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifiers( pDrmFormatModifiers_ )
59520     {}
59521 
59522     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59523 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59524     ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59525       : ImageDrmFormatModifierListCreateInfoEXT( *reinterpret_cast<ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs ) )
59526     {}
59527 
59528 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59529     ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ )
59530     : drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() )
59531     {}
59532 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59533 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59534 
59535     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59536 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59537     ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59538     {
59539       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs );
59540       return *this;
59541     }
59542 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59543     ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59544     {
59545       pNext = pNext_;
59546       return *this;
59547     }
59548 
setDrmFormatModifierCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59549     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT
59550     {
59551       drmFormatModifierCount = drmFormatModifierCount_;
59552       return *this;
59553     }
59554 
setPDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59555     ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
59556     {
59557       pDrmFormatModifiers = pDrmFormatModifiers_;
59558       return *this;
59559     }
59560 
59561 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59562     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
59563     {
59564       drmFormatModifierCount = static_cast<uint32_t>( drmFormatModifiers_.size() );
59565       pDrmFormatModifiers = drmFormatModifiers_.data();
59566       return *this;
59567     }
59568 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59569 
59570 
operator VkImageDrmFormatModifierListCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59571     operator VkImageDrmFormatModifierListCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
59572     {
59573       return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>( this );
59574     }
59575 
operator VkImageDrmFormatModifierListCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59576     operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
59577     {
59578       return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>( this );
59579     }
59580 
59581 
59582 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59583     auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const& ) const = default;
59584 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59585     bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59586     {
59587       return ( sType == rhs.sType )
59588           && ( pNext == rhs.pNext )
59589           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
59590           && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
59591     }
59592 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59593     bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59594     {
59595       return !operator==( rhs );
59596     }
59597 #endif
59598 
59599 
59600 
59601   public:
59602     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
59603     const void* pNext = {};
59604     uint32_t drmFormatModifierCount = {};
59605     const uint64_t* pDrmFormatModifiers = {};
59606 
59607   };
59608   static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" );
59609   static_assert( std::is_standard_layout<ImageDrmFormatModifierListCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
59610 
59611   template <>
59612   struct CppType<StructureType, StructureType::eImageDrmFormatModifierListCreateInfoEXT>
59613   {
59614     using Type = ImageDrmFormatModifierListCreateInfoEXT;
59615   };
59616 
59617   struct ImageFormatListCreateInfo
59618   {
59619     static const bool allowDuplicate = false;
59620     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo;
59621 
59622 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59623     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo(uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT
59624     : viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
59625     {}
59626 
59627     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59628 
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59629     ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59630       : ImageFormatListCreateInfo( *reinterpret_cast<ImageFormatListCreateInfo const *>( &rhs ) )
59631     {}
59632 
59633 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59634     ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ )
59635     : viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
59636     {}
59637 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59638 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59639 
59640     VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59641 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59642     ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59643     {
59644       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const *>( &rhs );
59645       return *this;
59646     }
59647 
setPNextVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59648     ImageFormatListCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59649     {
59650       pNext = pNext_;
59651       return *this;
59652     }
59653 
setViewFormatCountVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59654     ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
59655     {
59656       viewFormatCount = viewFormatCount_;
59657       return *this;
59658     }
59659 
setPViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59660     ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
59661     {
59662       pViewFormats = pViewFormats_;
59663       return *this;
59664     }
59665 
59666 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59667     ImageFormatListCreateInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
59668     {
59669       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
59670       pViewFormats = viewFormats_.data();
59671       return *this;
59672     }
59673 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59674 
59675 
operator VkImageFormatListCreateInfo const&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59676     operator VkImageFormatListCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59677     {
59678       return *reinterpret_cast<const VkImageFormatListCreateInfo*>( this );
59679     }
59680 
operator VkImageFormatListCreateInfo&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59681     operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
59682     {
59683       return *reinterpret_cast<VkImageFormatListCreateInfo*>( this );
59684     }
59685 
59686 
59687 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59688     auto operator<=>( ImageFormatListCreateInfo const& ) const = default;
59689 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59690     bool operator==( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59691     {
59692       return ( sType == rhs.sType )
59693           && ( pNext == rhs.pNext )
59694           && ( viewFormatCount == rhs.viewFormatCount )
59695           && ( pViewFormats == rhs.pViewFormats );
59696     }
59697 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59698     bool operator!=( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59699     {
59700       return !operator==( rhs );
59701     }
59702 #endif
59703 
59704 
59705 
59706   public:
59707     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo;
59708     const void* pNext = {};
59709     uint32_t viewFormatCount = {};
59710     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
59711 
59712   };
59713   static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), "struct and wrapper have different size!" );
59714   static_assert( std::is_standard_layout<ImageFormatListCreateInfo>::value, "struct wrapper is not a standard layout!" );
59715 
59716   template <>
59717   struct CppType<StructureType, StructureType::eImageFormatListCreateInfo>
59718   {
59719     using Type = ImageFormatListCreateInfo;
59720   };
59721   using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
59722 
59723 #ifdef VK_USE_PLATFORM_FUCHSIA
59724   struct ImagePipeSurfaceCreateInfoFUCHSIA
59725   {
59726     static const bool allowDuplicate = false;
59727     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
59728 
59729 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59730     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, zx_handle_t imagePipeHandle_ = {}) VULKAN_HPP_NOEXCEPT
59731     : flags( flags_ ), imagePipeHandle( imagePipeHandle_ )
59732     {}
59733 
59734     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59735 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59736     ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
59737       : ImagePipeSurfaceCreateInfoFUCHSIA( *reinterpret_cast<ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs ) )
59738     {}
59739 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59740 
59741     VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59742 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59743     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
59744     {
59745       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs );
59746       return *this;
59747     }
59748 
setPNextVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59749     ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59750     {
59751       pNext = pNext_;
59752       return *this;
59753     }
59754 
setFlagsVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59755     ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
59756     {
59757       flags = flags_;
59758       return *this;
59759     }
59760 
setImagePipeHandleVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59761     ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT
59762     {
59763       imagePipeHandle = imagePipeHandle_;
59764       return *this;
59765     }
59766 
59767 
operator VkImagePipeSurfaceCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59768     operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const VULKAN_HPP_NOEXCEPT
59769     {
59770       return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
59771     }
59772 
operator VkImagePipeSurfaceCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59773     operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
59774     {
59775       return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
59776     }
59777 
59778 
59779 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59780     auto operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const& ) const = default;
59781 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59782     bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
59783     {
59784       return ( sType == rhs.sType )
59785           && ( pNext == rhs.pNext )
59786           && ( flags == rhs.flags )
59787           && ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 );
59788     }
59789 
operator !=VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59790     bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
59791     {
59792       return !operator==( rhs );
59793     }
59794 #endif
59795 
59796 
59797 
59798   public:
59799     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
59800     const void* pNext = {};
59801     VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {};
59802     zx_handle_t imagePipeHandle = {};
59803 
59804   };
59805   static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" );
59806   static_assert( std::is_standard_layout<ImagePipeSurfaceCreateInfoFUCHSIA>::value, "struct wrapper is not a standard layout!" );
59807 
59808   template <>
59809   struct CppType<StructureType, StructureType::eImagepipeSurfaceCreateInfoFUCHSIA>
59810   {
59811     using Type = ImagePipeSurfaceCreateInfoFUCHSIA;
59812   };
59813 #endif /*VK_USE_PLATFORM_FUCHSIA*/
59814 
59815   struct ImagePlaneMemoryRequirementsInfo
59816   {
59817     static const bool allowDuplicate = false;
59818     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo;
59819 
59820 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59821     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT
59822     : planeAspect( planeAspect_ )
59823     {}
59824 
59825     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59826 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59827     ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59828       : ImagePlaneMemoryRequirementsInfo( *reinterpret_cast<ImagePlaneMemoryRequirementsInfo const *>( &rhs ) )
59829     {}
59830 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59831 
59832     VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59833 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59834     ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59835     {
59836       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const *>( &rhs );
59837       return *this;
59838     }
59839 
setPNextVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59840     ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59841     {
59842       pNext = pNext_;
59843       return *this;
59844     }
59845 
setPlaneAspectVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59846     ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
59847     {
59848       planeAspect = planeAspect_;
59849       return *this;
59850     }
59851 
59852 
operator VkImagePlaneMemoryRequirementsInfo const&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59853     operator VkImagePlaneMemoryRequirementsInfo const&() const VULKAN_HPP_NOEXCEPT
59854     {
59855       return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>( this );
59856     }
59857 
operator VkImagePlaneMemoryRequirementsInfo&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59858     operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
59859     {
59860       return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>( this );
59861     }
59862 
59863 
59864 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59865     auto operator<=>( ImagePlaneMemoryRequirementsInfo const& ) const = default;
59866 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59867     bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59868     {
59869       return ( sType == rhs.sType )
59870           && ( pNext == rhs.pNext )
59871           && ( planeAspect == rhs.planeAspect );
59872     }
59873 
operator !=VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59874     bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59875     {
59876       return !operator==( rhs );
59877     }
59878 #endif
59879 
59880 
59881 
59882   public:
59883     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
59884     const void* pNext = {};
59885     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
59886 
59887   };
59888   static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" );
59889   static_assert( std::is_standard_layout<ImagePlaneMemoryRequirementsInfo>::value, "struct wrapper is not a standard layout!" );
59890 
59891   template <>
59892   struct CppType<StructureType, StructureType::eImagePlaneMemoryRequirementsInfo>
59893   {
59894     using Type = ImagePlaneMemoryRequirementsInfo;
59895   };
59896   using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
59897 
59898   struct ImageStencilUsageCreateInfo
59899   {
59900     static const bool allowDuplicate = false;
59901     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo;
59902 
59903 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59904     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {}) VULKAN_HPP_NOEXCEPT
59905     : stencilUsage( stencilUsage_ )
59906     {}
59907 
59908     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59909 
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59910     ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59911       : ImageStencilUsageCreateInfo( *reinterpret_cast<ImageStencilUsageCreateInfo const *>( &rhs ) )
59912     {}
59913 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59914 
59915     VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59916 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59917     ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59918     {
59919       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const *>( &rhs );
59920       return *this;
59921     }
59922 
setPNextVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59923     ImageStencilUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59924     {
59925       pNext = pNext_;
59926       return *this;
59927     }
59928 
setStencilUsageVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59929     ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT
59930     {
59931       stencilUsage = stencilUsage_;
59932       return *this;
59933     }
59934 
59935 
operator VkImageStencilUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59936     operator VkImageStencilUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59937     {
59938       return *reinterpret_cast<const VkImageStencilUsageCreateInfo*>( this );
59939     }
59940 
operator VkImageStencilUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59941     operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
59942     {
59943       return *reinterpret_cast<VkImageStencilUsageCreateInfo*>( this );
59944     }
59945 
59946 
59947 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59948     auto operator<=>( ImageStencilUsageCreateInfo const& ) const = default;
59949 #else
operator ==VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59950     bool operator==( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59951     {
59952       return ( sType == rhs.sType )
59953           && ( pNext == rhs.pNext )
59954           && ( stencilUsage == rhs.stencilUsage );
59955     }
59956 
operator !=VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59957     bool operator!=( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59958     {
59959       return !operator==( rhs );
59960     }
59961 #endif
59962 
59963 
59964 
59965   public:
59966     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo;
59967     const void* pNext = {};
59968     VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {};
59969 
59970   };
59971   static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), "struct and wrapper have different size!" );
59972   static_assert( std::is_standard_layout<ImageStencilUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
59973 
59974   template <>
59975   struct CppType<StructureType, StructureType::eImageStencilUsageCreateInfo>
59976   {
59977     using Type = ImageStencilUsageCreateInfo;
59978   };
59979   using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
59980 
59981   struct ImageSwapchainCreateInfoKHR
59982   {
59983     static const bool allowDuplicate = false;
59984     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR;
59985 
59986 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59987     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}) VULKAN_HPP_NOEXCEPT
59988     : swapchain( swapchain_ )
59989     {}
59990 
59991     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59992 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59993     ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59994       : ImageSwapchainCreateInfoKHR( *reinterpret_cast<ImageSwapchainCreateInfoKHR const *>( &rhs ) )
59995     {}
59996 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59997 
59998     VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59999 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR60000     ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60001     {
60002       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const *>( &rhs );
60003       return *this;
60004     }
60005 
setPNextVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR60006     ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60007     {
60008       pNext = pNext_;
60009       return *this;
60010     }
60011 
setSwapchainVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR60012     ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
60013     {
60014       swapchain = swapchain_;
60015       return *this;
60016     }
60017 
60018 
operator VkImageSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR60019     operator VkImageSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
60020     {
60021       return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>( this );
60022     }
60023 
operator VkImageSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR60024     operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
60025     {
60026       return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>( this );
60027     }
60028 
60029 
60030 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60031     auto operator<=>( ImageSwapchainCreateInfoKHR const& ) const = default;
60032 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR60033     bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60034     {
60035       return ( sType == rhs.sType )
60036           && ( pNext == rhs.pNext )
60037           && ( swapchain == rhs.swapchain );
60038     }
60039 
operator !=VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR60040     bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60041     {
60042       return !operator==( rhs );
60043     }
60044 #endif
60045 
60046 
60047 
60048   public:
60049     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
60050     const void* pNext = {};
60051     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
60052 
60053   };
60054   static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
60055   static_assert( std::is_standard_layout<ImageSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
60056 
60057   template <>
60058   struct CppType<StructureType, StructureType::eImageSwapchainCreateInfoKHR>
60059   {
60060     using Type = ImageSwapchainCreateInfoKHR;
60061   };
60062 
60063   struct ImageViewASTCDecodeModeEXT
60064   {
60065     static const bool allowDuplicate = false;
60066     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT;
60067 
60068 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60069     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT(VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT
60070     : decodeMode( decodeMode_ )
60071     {}
60072 
60073     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60074 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60075     ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60076       : ImageViewASTCDecodeModeEXT( *reinterpret_cast<ImageViewASTCDecodeModeEXT const *>( &rhs ) )
60077     {}
60078 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60079 
60080     VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60081 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60082     ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60083     {
60084       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const *>( &rhs );
60085       return *this;
60086     }
60087 
setPNextVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60088     ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60089     {
60090       pNext = pNext_;
60091       return *this;
60092     }
60093 
setDecodeModeVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60094     ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT
60095     {
60096       decodeMode = decodeMode_;
60097       return *this;
60098     }
60099 
60100 
operator VkImageViewASTCDecodeModeEXT const&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60101     operator VkImageViewASTCDecodeModeEXT const&() const VULKAN_HPP_NOEXCEPT
60102     {
60103       return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>( this );
60104     }
60105 
operator VkImageViewASTCDecodeModeEXT&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60106     operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
60107     {
60108       return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>( this );
60109     }
60110 
60111 
60112 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60113     auto operator<=>( ImageViewASTCDecodeModeEXT const& ) const = default;
60114 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60115     bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60116     {
60117       return ( sType == rhs.sType )
60118           && ( pNext == rhs.pNext )
60119           && ( decodeMode == rhs.decodeMode );
60120     }
60121 
operator !=VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT60122     bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60123     {
60124       return !operator==( rhs );
60125     }
60126 #endif
60127 
60128 
60129 
60130   public:
60131     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
60132     const void* pNext = {};
60133     VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined;
60134 
60135   };
60136   static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" );
60137   static_assert( std::is_standard_layout<ImageViewASTCDecodeModeEXT>::value, "struct wrapper is not a standard layout!" );
60138 
60139   template <>
60140   struct CppType<StructureType, StructureType::eImageViewAstcDecodeModeEXT>
60141   {
60142     using Type = ImageViewASTCDecodeModeEXT;
60143   };
60144 
60145   struct ImageViewUsageCreateInfo
60146   {
60147     static const bool allowDuplicate = false;
60148     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo;
60149 
60150 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60151     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}) VULKAN_HPP_NOEXCEPT
60152     : usage( usage_ )
60153     {}
60154 
60155     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60156 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60157     ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60158       : ImageViewUsageCreateInfo( *reinterpret_cast<ImageViewUsageCreateInfo const *>( &rhs ) )
60159     {}
60160 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60161 
60162     VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60163 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60164     ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60165     {
60166       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const *>( &rhs );
60167       return *this;
60168     }
60169 
setPNextVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60170     ImageViewUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60171     {
60172       pNext = pNext_;
60173       return *this;
60174     }
60175 
setUsageVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60176     ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
60177     {
60178       usage = usage_;
60179       return *this;
60180     }
60181 
60182 
operator VkImageViewUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60183     operator VkImageViewUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
60184     {
60185       return *reinterpret_cast<const VkImageViewUsageCreateInfo*>( this );
60186     }
60187 
operator VkImageViewUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60188     operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
60189     {
60190       return *reinterpret_cast<VkImageViewUsageCreateInfo*>( this );
60191     }
60192 
60193 
60194 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60195     auto operator<=>( ImageViewUsageCreateInfo const& ) const = default;
60196 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60197     bool operator==( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60198     {
60199       return ( sType == rhs.sType )
60200           && ( pNext == rhs.pNext )
60201           && ( usage == rhs.usage );
60202     }
60203 
operator !=VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo60204     bool operator!=( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60205     {
60206       return !operator==( rhs );
60207     }
60208 #endif
60209 
60210 
60211 
60212   public:
60213     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo;
60214     const void* pNext = {};
60215     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
60216 
60217   };
60218   static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" );
60219   static_assert( std::is_standard_layout<ImageViewUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
60220 
60221   template <>
60222   struct CppType<StructureType, StructureType::eImageViewUsageCreateInfo>
60223   {
60224     using Type = ImageViewUsageCreateInfo;
60225   };
60226   using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
60227 
60228 #ifdef VK_USE_PLATFORM_ANDROID_KHR
60229   struct ImportAndroidHardwareBufferInfoANDROID
60230   {
60231     static const bool allowDuplicate = false;
60232     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
60233 
60234 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60235     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID(struct AHardwareBuffer* buffer_ = {}) VULKAN_HPP_NOEXCEPT
60236     : buffer( buffer_ )
60237     {}
60238 
60239     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60240 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60241     ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
60242       : ImportAndroidHardwareBufferInfoANDROID( *reinterpret_cast<ImportAndroidHardwareBufferInfoANDROID const *>( &rhs ) )
60243     {}
60244 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60245 
60246     VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60247 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60248     ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
60249     {
60250       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const *>( &rhs );
60251       return *this;
60252     }
60253 
setPNextVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60254     ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60255     {
60256       pNext = pNext_;
60257       return *this;
60258     }
60259 
setBufferVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60260     ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ ) VULKAN_HPP_NOEXCEPT
60261     {
60262       buffer = buffer_;
60263       return *this;
60264     }
60265 
60266 
operator VkImportAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60267     operator VkImportAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
60268     {
60269       return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>( this );
60270     }
60271 
operator VkImportAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60272     operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
60273     {
60274       return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>( this );
60275     }
60276 
60277 
60278 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60279     auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const& ) const = default;
60280 #else
operator ==VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60281     bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
60282     {
60283       return ( sType == rhs.sType )
60284           && ( pNext == rhs.pNext )
60285           && ( buffer == rhs.buffer );
60286     }
60287 
operator !=VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID60288     bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
60289     {
60290       return !operator==( rhs );
60291     }
60292 #endif
60293 
60294 
60295 
60296   public:
60297     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
60298     const void* pNext = {};
60299     struct AHardwareBuffer* buffer = {};
60300 
60301   };
60302   static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
60303   static_assert( std::is_standard_layout<ImportAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
60304 
60305   template <>
60306   struct CppType<StructureType, StructureType::eImportAndroidHardwareBufferInfoANDROID>
60307   {
60308     using Type = ImportAndroidHardwareBufferInfoANDROID;
60309   };
60310 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
60311 
60312   struct ImportMemoryFdInfoKHR
60313   {
60314     static const bool allowDuplicate = false;
60315     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR;
60316 
60317 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60318     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT
60319     : handleType( handleType_ ), fd( fd_ )
60320     {}
60321 
60322     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60323 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60324     ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60325       : ImportMemoryFdInfoKHR( *reinterpret_cast<ImportMemoryFdInfoKHR const *>( &rhs ) )
60326     {}
60327 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60328 
60329     VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60330 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60331     ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60332     {
60333       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const *>( &rhs );
60334       return *this;
60335     }
60336 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60337     ImportMemoryFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60338     {
60339       pNext = pNext_;
60340       return *this;
60341     }
60342 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60343     ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
60344     {
60345       handleType = handleType_;
60346       return *this;
60347     }
60348 
setFdVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60349     ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
60350     {
60351       fd = fd_;
60352       return *this;
60353     }
60354 
60355 
operator VkImportMemoryFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60356     operator VkImportMemoryFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
60357     {
60358       return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>( this );
60359     }
60360 
operator VkImportMemoryFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60361     operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
60362     {
60363       return *reinterpret_cast<VkImportMemoryFdInfoKHR*>( this );
60364     }
60365 
60366 
60367 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60368     auto operator<=>( ImportMemoryFdInfoKHR const& ) const = default;
60369 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60370     bool operator==( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60371     {
60372       return ( sType == rhs.sType )
60373           && ( pNext == rhs.pNext )
60374           && ( handleType == rhs.handleType )
60375           && ( fd == rhs.fd );
60376     }
60377 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60378     bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60379     {
60380       return !operator==( rhs );
60381     }
60382 #endif
60383 
60384 
60385 
60386   public:
60387     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
60388     const void* pNext = {};
60389     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
60390     int fd = {};
60391 
60392   };
60393   static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" );
60394   static_assert( std::is_standard_layout<ImportMemoryFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
60395 
60396   template <>
60397   struct CppType<StructureType, StructureType::eImportMemoryFdInfoKHR>
60398   {
60399     using Type = ImportMemoryFdInfoKHR;
60400   };
60401 
60402   struct ImportMemoryHostPointerInfoEXT
60403   {
60404     static const bool allowDuplicate = false;
60405     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT;
60406 
60407 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60408     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, void* pHostPointer_ = {}) VULKAN_HPP_NOEXCEPT
60409     : handleType( handleType_ ), pHostPointer( pHostPointer_ )
60410     {}
60411 
60412     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60413 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60414     ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60415       : ImportMemoryHostPointerInfoEXT( *reinterpret_cast<ImportMemoryHostPointerInfoEXT const *>( &rhs ) )
60416     {}
60417 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60418 
60419     VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60420 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60421     ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60422     {
60423       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const *>( &rhs );
60424       return *this;
60425     }
60426 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60427     ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60428     {
60429       pNext = pNext_;
60430       return *this;
60431     }
60432 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60433     ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
60434     {
60435       handleType = handleType_;
60436       return *this;
60437     }
60438 
setPHostPointerVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60439     ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ ) VULKAN_HPP_NOEXCEPT
60440     {
60441       pHostPointer = pHostPointer_;
60442       return *this;
60443     }
60444 
60445 
operator VkImportMemoryHostPointerInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60446     operator VkImportMemoryHostPointerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
60447     {
60448       return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>( this );
60449     }
60450 
operator VkImportMemoryHostPointerInfoEXT&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60451     operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
60452     {
60453       return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>( this );
60454     }
60455 
60456 
60457 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60458     auto operator<=>( ImportMemoryHostPointerInfoEXT const& ) const = default;
60459 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60460     bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60461     {
60462       return ( sType == rhs.sType )
60463           && ( pNext == rhs.pNext )
60464           && ( handleType == rhs.handleType )
60465           && ( pHostPointer == rhs.pHostPointer );
60466     }
60467 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60468     bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60469     {
60470       return !operator==( rhs );
60471     }
60472 #endif
60473 
60474 
60475 
60476   public:
60477     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
60478     const void* pNext = {};
60479     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
60480     void* pHostPointer = {};
60481 
60482   };
60483   static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" );
60484   static_assert( std::is_standard_layout<ImportMemoryHostPointerInfoEXT>::value, "struct wrapper is not a standard layout!" );
60485 
60486   template <>
60487   struct CppType<StructureType, StructureType::eImportMemoryHostPointerInfoEXT>
60488   {
60489     using Type = ImportMemoryHostPointerInfoEXT;
60490   };
60491 
60492 #ifdef VK_USE_PLATFORM_WIN32_KHR
60493   struct ImportMemoryWin32HandleInfoKHR
60494   {
60495     static const bool allowDuplicate = false;
60496     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR;
60497 
60498 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60499     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
60500     : handleType( handleType_ ), handle( handle_ ), name( name_ )
60501     {}
60502 
60503     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60504 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60505     ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60506       : ImportMemoryWin32HandleInfoKHR( *reinterpret_cast<ImportMemoryWin32HandleInfoKHR const *>( &rhs ) )
60507     {}
60508 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60509 
60510     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60511 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60512     ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60513     {
60514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const *>( &rhs );
60515       return *this;
60516     }
60517 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60518     ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60519     {
60520       pNext = pNext_;
60521       return *this;
60522     }
60523 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60524     ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
60525     {
60526       handleType = handleType_;
60527       return *this;
60528     }
60529 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60530     ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
60531     {
60532       handle = handle_;
60533       return *this;
60534     }
60535 
setNameVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60536     ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
60537     {
60538       name = name_;
60539       return *this;
60540     }
60541 
60542 
operator VkImportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60543     operator VkImportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
60544     {
60545       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>( this );
60546     }
60547 
operator VkImportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60548     operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
60549     {
60550       return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>( this );
60551     }
60552 
60553 
60554 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60555     auto operator<=>( ImportMemoryWin32HandleInfoKHR const& ) const = default;
60556 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60557     bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60558     {
60559       return ( sType == rhs.sType )
60560           && ( pNext == rhs.pNext )
60561           && ( handleType == rhs.handleType )
60562           && ( handle == rhs.handle )
60563           && ( name == rhs.name );
60564     }
60565 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60566     bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60567     {
60568       return !operator==( rhs );
60569     }
60570 #endif
60571 
60572 
60573 
60574   public:
60575     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
60576     const void* pNext = {};
60577     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
60578     HANDLE handle = {};
60579     LPCWSTR name = {};
60580 
60581   };
60582   static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
60583   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
60584 
60585   template <>
60586   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoKHR>
60587   {
60588     using Type = ImportMemoryWin32HandleInfoKHR;
60589   };
60590 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
60591 
60592 #ifdef VK_USE_PLATFORM_WIN32_KHR
60593   struct ImportMemoryWin32HandleInfoNV
60594   {
60595     static const bool allowDuplicate = false;
60596     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV;
60597 
60598 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60599     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, HANDLE handle_ = {}) VULKAN_HPP_NOEXCEPT
60600     : handleType( handleType_ ), handle( handle_ )
60601     {}
60602 
60603     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60604 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60605     ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
60606       : ImportMemoryWin32HandleInfoNV( *reinterpret_cast<ImportMemoryWin32HandleInfoNV const *>( &rhs ) )
60607     {}
60608 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60609 
60610     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60611 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60612     ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
60613     {
60614       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const *>( &rhs );
60615       return *this;
60616     }
60617 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60618     ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60619     {
60620       pNext = pNext_;
60621       return *this;
60622     }
60623 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60624     ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
60625     {
60626       handleType = handleType_;
60627       return *this;
60628     }
60629 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60630     ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
60631     {
60632       handle = handle_;
60633       return *this;
60634     }
60635 
60636 
operator VkImportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60637     operator VkImportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
60638     {
60639       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>( this );
60640     }
60641 
operator VkImportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60642     operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
60643     {
60644       return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>( this );
60645     }
60646 
60647 
60648 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60649     auto operator<=>( ImportMemoryWin32HandleInfoNV const& ) const = default;
60650 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60651     bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
60652     {
60653       return ( sType == rhs.sType )
60654           && ( pNext == rhs.pNext )
60655           && ( handleType == rhs.handleType )
60656           && ( handle == rhs.handle );
60657     }
60658 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60659     bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
60660     {
60661       return !operator==( rhs );
60662     }
60663 #endif
60664 
60665 
60666 
60667   public:
60668     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
60669     const void* pNext = {};
60670     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {};
60671     HANDLE handle = {};
60672 
60673   };
60674   static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
60675   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
60676 
60677   template <>
60678   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoNV>
60679   {
60680     using Type = ImportMemoryWin32HandleInfoNV;
60681   };
60682 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
60683 
60684   struct InputAttachmentAspectReference
60685   {
60686 
60687 
60688 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60689     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference(uint32_t subpass_ = {}, uint32_t inputAttachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT
60690     : subpass( subpass_ ), inputAttachmentIndex( inputAttachmentIndex_ ), aspectMask( aspectMask_ )
60691     {}
60692 
60693     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60694 
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60695     InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
60696       : InputAttachmentAspectReference( *reinterpret_cast<InputAttachmentAspectReference const *>( &rhs ) )
60697     {}
60698 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60699 
60700     VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60701 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60702     InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
60703     {
60704       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const *>( &rhs );
60705       return *this;
60706     }
60707 
setSubpassVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60708     InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
60709     {
60710       subpass = subpass_;
60711       return *this;
60712     }
60713 
setInputAttachmentIndexVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60714     InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT
60715     {
60716       inputAttachmentIndex = inputAttachmentIndex_;
60717       return *this;
60718     }
60719 
setAspectMaskVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60720     InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
60721     {
60722       aspectMask = aspectMask_;
60723       return *this;
60724     }
60725 
60726 
operator VkInputAttachmentAspectReference const&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60727     operator VkInputAttachmentAspectReference const&() const VULKAN_HPP_NOEXCEPT
60728     {
60729       return *reinterpret_cast<const VkInputAttachmentAspectReference*>( this );
60730     }
60731 
operator VkInputAttachmentAspectReference&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60732     operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
60733     {
60734       return *reinterpret_cast<VkInputAttachmentAspectReference*>( this );
60735     }
60736 
60737 
60738 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60739     auto operator<=>( InputAttachmentAspectReference const& ) const = default;
60740 #else
operator ==VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60741     bool operator==( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
60742     {
60743       return ( subpass == rhs.subpass )
60744           && ( inputAttachmentIndex == rhs.inputAttachmentIndex )
60745           && ( aspectMask == rhs.aspectMask );
60746     }
60747 
operator !=VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60748     bool operator!=( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
60749     {
60750       return !operator==( rhs );
60751     }
60752 #endif
60753 
60754 
60755 
60756   public:
60757     uint32_t subpass = {};
60758     uint32_t inputAttachmentIndex = {};
60759     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
60760 
60761   };
60762   static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" );
60763   static_assert( std::is_standard_layout<InputAttachmentAspectReference>::value, "struct wrapper is not a standard layout!" );
60764   using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
60765 
60766   struct InstanceCreateInfo
60767   {
60768     static const bool allowDuplicate = false;
60769     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo;
60770 
60771 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60772     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
60773     : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ )
60774     {}
60775 
60776     VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60777 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60778     InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60779       : InstanceCreateInfo( *reinterpret_cast<InstanceCreateInfo const *>( &rhs ) )
60780     {}
60781 
60782 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60783     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_ = {} )
60784     : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
60785     {}
60786 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60787 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60788 
60789     VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60790 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo60791     InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60792     {
60793       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InstanceCreateInfo const *>( &rhs );
60794       return *this;
60795     }
60796 
setPNextVULKAN_HPP_NAMESPACE::InstanceCreateInfo60797     InstanceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60798     {
60799       pNext = pNext_;
60800       return *this;
60801     }
60802 
setFlagsVULKAN_HPP_NAMESPACE::InstanceCreateInfo60803     InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
60804     {
60805       flags = flags_;
60806       return *this;
60807     }
60808 
setPApplicationInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60809     InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT
60810     {
60811       pApplicationInfo = pApplicationInfo_;
60812       return *this;
60813     }
60814 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo60815     InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
60816     {
60817       enabledLayerCount = enabledLayerCount_;
60818       return *this;
60819     }
60820 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60821     InstanceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
60822     {
60823       ppEnabledLayerNames = ppEnabledLayerNames_;
60824       return *this;
60825     }
60826 
60827 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60828     InstanceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
60829     {
60830       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
60831       ppEnabledLayerNames = pEnabledLayerNames_.data();
60832       return *this;
60833     }
60834 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60835 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo60836     InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
60837     {
60838       enabledExtensionCount = enabledExtensionCount_;
60839       return *this;
60840     }
60841 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60842     InstanceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
60843     {
60844       ppEnabledExtensionNames = ppEnabledExtensionNames_;
60845       return *this;
60846     }
60847 
60848 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60849     InstanceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
60850     {
60851       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
60852       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
60853       return *this;
60854     }
60855 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60856 
60857 
operator VkInstanceCreateInfo const&VULKAN_HPP_NAMESPACE::InstanceCreateInfo60858     operator VkInstanceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
60859     {
60860       return *reinterpret_cast<const VkInstanceCreateInfo*>( this );
60861     }
60862 
operator VkInstanceCreateInfo&VULKAN_HPP_NAMESPACE::InstanceCreateInfo60863     operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
60864     {
60865       return *reinterpret_cast<VkInstanceCreateInfo*>( this );
60866     }
60867 
60868 
60869 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60870     auto operator<=>( InstanceCreateInfo const& ) const = default;
60871 #else
operator ==VULKAN_HPP_NAMESPACE::InstanceCreateInfo60872     bool operator==( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60873     {
60874       return ( sType == rhs.sType )
60875           && ( pNext == rhs.pNext )
60876           && ( flags == rhs.flags )
60877           && ( pApplicationInfo == rhs.pApplicationInfo )
60878           && ( enabledLayerCount == rhs.enabledLayerCount )
60879           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
60880           && ( enabledExtensionCount == rhs.enabledExtensionCount )
60881           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames );
60882     }
60883 
operator !=VULKAN_HPP_NAMESPACE::InstanceCreateInfo60884     bool operator!=( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60885     {
60886       return !operator==( rhs );
60887     }
60888 #endif
60889 
60890 
60891 
60892   public:
60893     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo;
60894     const void* pNext = {};
60895     VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {};
60896     const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo = {};
60897     uint32_t enabledLayerCount = {};
60898     const char* const * ppEnabledLayerNames = {};
60899     uint32_t enabledExtensionCount = {};
60900     const char* const * ppEnabledExtensionNames = {};
60901 
60902   };
60903   static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" );
60904   static_assert( std::is_standard_layout<InstanceCreateInfo>::value, "struct wrapper is not a standard layout!" );
60905 
60906   template <>
60907   struct CppType<StructureType, StructureType::eInstanceCreateInfo>
60908   {
60909     using Type = InstanceCreateInfo;
60910   };
60911 
60912 #ifdef VK_USE_PLATFORM_MACOS_MVK
60913   struct MacOSSurfaceCreateInfoMVK
60914   {
60915     static const bool allowDuplicate = false;
60916     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK;
60917 
60918 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60919     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT
60920     : flags( flags_ ), pView( pView_ )
60921     {}
60922 
60923     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60924 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60925     MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60926       : MacOSSurfaceCreateInfoMVK( *reinterpret_cast<MacOSSurfaceCreateInfoMVK const *>( &rhs ) )
60927     {}
60928 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60929 
60930     VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60931 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60932     MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60933     {
60934       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const *>( &rhs );
60935       return *this;
60936     }
60937 
setPNextVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60938     MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60939     {
60940       pNext = pNext_;
60941       return *this;
60942     }
60943 
setFlagsVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60944     MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
60945     {
60946       flags = flags_;
60947       return *this;
60948     }
60949 
setPViewVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60950     MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
60951     {
60952       pView = pView_;
60953       return *this;
60954     }
60955 
60956 
operator VkMacOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60957     operator VkMacOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
60958     {
60959       return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( this );
60960     }
60961 
operator VkMacOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60962     operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
60963     {
60964       return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>( this );
60965     }
60966 
60967 
60968 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60969     auto operator<=>( MacOSSurfaceCreateInfoMVK const& ) const = default;
60970 #else
operator ==VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60971     bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
60972     {
60973       return ( sType == rhs.sType )
60974           && ( pNext == rhs.pNext )
60975           && ( flags == rhs.flags )
60976           && ( pView == rhs.pView );
60977     }
60978 
operator !=VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60979     bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
60980     {
60981       return !operator==( rhs );
60982     }
60983 #endif
60984 
60985 
60986 
60987   public:
60988     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
60989     const void* pNext = {};
60990     VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {};
60991     const void* pView = {};
60992 
60993   };
60994   static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
60995   static_assert( std::is_standard_layout<MacOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
60996 
60997   template <>
60998   struct CppType<StructureType, StructureType::eMacosSurfaceCreateInfoMVK>
60999   {
61000     using Type = MacOSSurfaceCreateInfoMVK;
61001   };
61002 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
61003 
61004   struct MemoryAllocateFlagsInfo
61005   {
61006     static const bool allowDuplicate = false;
61007     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo;
61008 
61009 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61010     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo(VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
61011     : flags( flags_ ), deviceMask( deviceMask_ )
61012     {}
61013 
61014     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61015 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61016     MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61017       : MemoryAllocateFlagsInfo( *reinterpret_cast<MemoryAllocateFlagsInfo const *>( &rhs ) )
61018     {}
61019 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61020 
61021     VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61022 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61023     MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61024     {
61025       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const *>( &rhs );
61026       return *this;
61027     }
61028 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61029     MemoryAllocateFlagsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61030     {
61031       pNext = pNext_;
61032       return *this;
61033     }
61034 
setFlagsVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61035     MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT
61036     {
61037       flags = flags_;
61038       return *this;
61039     }
61040 
setDeviceMaskVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61041     MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
61042     {
61043       deviceMask = deviceMask_;
61044       return *this;
61045     }
61046 
61047 
operator VkMemoryAllocateFlagsInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61048     operator VkMemoryAllocateFlagsInfo const&() const VULKAN_HPP_NOEXCEPT
61049     {
61050       return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>( this );
61051     }
61052 
operator VkMemoryAllocateFlagsInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61053     operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
61054     {
61055       return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>( this );
61056     }
61057 
61058 
61059 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61060     auto operator<=>( MemoryAllocateFlagsInfo const& ) const = default;
61061 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61062     bool operator==( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61063     {
61064       return ( sType == rhs.sType )
61065           && ( pNext == rhs.pNext )
61066           && ( flags == rhs.flags )
61067           && ( deviceMask == rhs.deviceMask );
61068     }
61069 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo61070     bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61071     {
61072       return !operator==( rhs );
61073     }
61074 #endif
61075 
61076 
61077 
61078   public:
61079     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
61080     const void* pNext = {};
61081     VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {};
61082     uint32_t deviceMask = {};
61083 
61084   };
61085   static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" );
61086   static_assert( std::is_standard_layout<MemoryAllocateFlagsInfo>::value, "struct wrapper is not a standard layout!" );
61087 
61088   template <>
61089   struct CppType<StructureType, StructureType::eMemoryAllocateFlagsInfo>
61090   {
61091     using Type = MemoryAllocateFlagsInfo;
61092   };
61093   using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
61094 
61095   struct MemoryDedicatedAllocateInfo
61096   {
61097     static const bool allowDuplicate = false;
61098     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo;
61099 
61100 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61101     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
61102     : image( image_ ), buffer( buffer_ )
61103     {}
61104 
61105     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61106 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61107     MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61108       : MemoryDedicatedAllocateInfo( *reinterpret_cast<MemoryDedicatedAllocateInfo const *>( &rhs ) )
61109     {}
61110 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61111 
61112     VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61113 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61114     MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61115     {
61116       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const *>( &rhs );
61117       return *this;
61118     }
61119 
setPNextVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61120     MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61121     {
61122       pNext = pNext_;
61123       return *this;
61124     }
61125 
setImageVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61126     MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
61127     {
61128       image = image_;
61129       return *this;
61130     }
61131 
setBufferVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61132     MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
61133     {
61134       buffer = buffer_;
61135       return *this;
61136     }
61137 
61138 
operator VkMemoryDedicatedAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61139     operator VkMemoryDedicatedAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
61140     {
61141       return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>( this );
61142     }
61143 
operator VkMemoryDedicatedAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61144     operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
61145     {
61146       return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>( this );
61147     }
61148 
61149 
61150 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61151     auto operator<=>( MemoryDedicatedAllocateInfo const& ) const = default;
61152 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61153     bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61154     {
61155       return ( sType == rhs.sType )
61156           && ( pNext == rhs.pNext )
61157           && ( image == rhs.image )
61158           && ( buffer == rhs.buffer );
61159     }
61160 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo61161     bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61162     {
61163       return !operator==( rhs );
61164     }
61165 #endif
61166 
61167 
61168 
61169   public:
61170     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
61171     const void* pNext = {};
61172     VULKAN_HPP_NAMESPACE::Image image = {};
61173     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
61174 
61175   };
61176   static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" );
61177   static_assert( std::is_standard_layout<MemoryDedicatedAllocateInfo>::value, "struct wrapper is not a standard layout!" );
61178 
61179   template <>
61180   struct CppType<StructureType, StructureType::eMemoryDedicatedAllocateInfo>
61181   {
61182     using Type = MemoryDedicatedAllocateInfo;
61183   };
61184   using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
61185 
61186   struct MemoryDedicatedRequirements
61187   {
61188     static const bool allowDuplicate = false;
61189     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements;
61190 
61191 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements61192     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements(VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
61193     : prefersDedicatedAllocation( prefersDedicatedAllocation_ ), requiresDedicatedAllocation( requiresDedicatedAllocation_ )
61194     {}
61195 
61196     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61197 
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements61198     MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
61199       : MemoryDedicatedRequirements( *reinterpret_cast<MemoryDedicatedRequirements const *>( &rhs ) )
61200     {}
61201 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61202 
61203     VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61204 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements61205     MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
61206     {
61207       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const *>( &rhs );
61208       return *this;
61209     }
61210 
61211 
operator VkMemoryDedicatedRequirements const&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements61212     operator VkMemoryDedicatedRequirements const&() const VULKAN_HPP_NOEXCEPT
61213     {
61214       return *reinterpret_cast<const VkMemoryDedicatedRequirements*>( this );
61215     }
61216 
operator VkMemoryDedicatedRequirements&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements61217     operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
61218     {
61219       return *reinterpret_cast<VkMemoryDedicatedRequirements*>( this );
61220     }
61221 
61222 
61223 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61224     auto operator<=>( MemoryDedicatedRequirements const& ) const = default;
61225 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements61226     bool operator==( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
61227     {
61228       return ( sType == rhs.sType )
61229           && ( pNext == rhs.pNext )
61230           && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation )
61231           && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
61232     }
61233 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements61234     bool operator!=( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
61235     {
61236       return !operator==( rhs );
61237     }
61238 #endif
61239 
61240 
61241 
61242   public:
61243     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements;
61244     void* pNext = {};
61245     VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {};
61246     VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {};
61247 
61248   };
61249   static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" );
61250   static_assert( std::is_standard_layout<MemoryDedicatedRequirements>::value, "struct wrapper is not a standard layout!" );
61251 
61252   template <>
61253   struct CppType<StructureType, StructureType::eMemoryDedicatedRequirements>
61254   {
61255     using Type = MemoryDedicatedRequirements;
61256   };
61257   using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
61258 
61259   struct MemoryOpaqueCaptureAddressAllocateInfo
61260   {
61261     static const bool allowDuplicate = false;
61262     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
61263 
61264 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61265     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT
61266     : opaqueCaptureAddress( opaqueCaptureAddress_ )
61267     {}
61268 
61269     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61270 
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61271     MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61272       : MemoryOpaqueCaptureAddressAllocateInfo( *reinterpret_cast<MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs ) )
61273     {}
61274 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61275 
61276     VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61277 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61278     MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
61279     {
61280       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs );
61281       return *this;
61282     }
61283 
setPNextVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61284     MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61285     {
61286       pNext = pNext_;
61287       return *this;
61288     }
61289 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61290     MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
61291     {
61292       opaqueCaptureAddress = opaqueCaptureAddress_;
61293       return *this;
61294     }
61295 
61296 
operator VkMemoryOpaqueCaptureAddressAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61297     operator VkMemoryOpaqueCaptureAddressAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
61298     {
61299       return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
61300     }
61301 
operator VkMemoryOpaqueCaptureAddressAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61302     operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
61303     {
61304       return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
61305     }
61306 
61307 
61308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61309     auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const& ) const = default;
61310 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61311     bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61312     {
61313       return ( sType == rhs.sType )
61314           && ( pNext == rhs.pNext )
61315           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
61316     }
61317 
operator !=VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61318     bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61319     {
61320       return !operator==( rhs );
61321     }
61322 #endif
61323 
61324 
61325 
61326   public:
61327     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
61328     const void* pNext = {};
61329     uint64_t opaqueCaptureAddress = {};
61330 
61331   };
61332   static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), "struct and wrapper have different size!" );
61333   static_assert( std::is_standard_layout<MemoryOpaqueCaptureAddressAllocateInfo>::value, "struct wrapper is not a standard layout!" );
61334 
61335   template <>
61336   struct CppType<StructureType, StructureType::eMemoryOpaqueCaptureAddressAllocateInfo>
61337   {
61338     using Type = MemoryOpaqueCaptureAddressAllocateInfo;
61339   };
61340   using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
61341 
61342   struct MemoryPriorityAllocateInfoEXT
61343   {
61344     static const bool allowDuplicate = false;
61345     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT;
61346 
61347 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61348     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT(float priority_ = {}) VULKAN_HPP_NOEXCEPT
61349     : priority( priority_ )
61350     {}
61351 
61352     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61353 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61354     MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61355       : MemoryPriorityAllocateInfoEXT( *reinterpret_cast<MemoryPriorityAllocateInfoEXT const *>( &rhs ) )
61356     {}
61357 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61358 
61359     VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61360 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61361     MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61362     {
61363       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const *>( &rhs );
61364       return *this;
61365     }
61366 
setPNextVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61367     MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61368     {
61369       pNext = pNext_;
61370       return *this;
61371     }
61372 
setPriorityVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61373     MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT
61374     {
61375       priority = priority_;
61376       return *this;
61377     }
61378 
61379 
operator VkMemoryPriorityAllocateInfoEXT const&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61380     operator VkMemoryPriorityAllocateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
61381     {
61382       return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>( this );
61383     }
61384 
operator VkMemoryPriorityAllocateInfoEXT&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61385     operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
61386     {
61387       return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>( this );
61388     }
61389 
61390 
61391 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61392     auto operator<=>( MemoryPriorityAllocateInfoEXT const& ) const = default;
61393 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61394     bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61395     {
61396       return ( sType == rhs.sType )
61397           && ( pNext == rhs.pNext )
61398           && ( priority == rhs.priority );
61399     }
61400 
operator !=VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61401     bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61402     {
61403       return !operator==( rhs );
61404     }
61405 #endif
61406 
61407 
61408 
61409   public:
61410     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
61411     const void* pNext = {};
61412     float priority = {};
61413 
61414   };
61415   static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" );
61416   static_assert( std::is_standard_layout<MemoryPriorityAllocateInfoEXT>::value, "struct wrapper is not a standard layout!" );
61417 
61418   template <>
61419   struct CppType<StructureType, StructureType::eMemoryPriorityAllocateInfoEXT>
61420   {
61421     using Type = MemoryPriorityAllocateInfoEXT;
61422   };
61423 
61424 #ifdef VK_USE_PLATFORM_METAL_EXT
61425   struct MetalSurfaceCreateInfoEXT
61426   {
61427     static const bool allowDuplicate = false;
61428     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT;
61429 
61430 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61431     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, const CAMetalLayer* pLayer_ = {}) VULKAN_HPP_NOEXCEPT
61432     : flags( flags_ ), pLayer( pLayer_ )
61433     {}
61434 
61435     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61436 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61437     MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61438       : MetalSurfaceCreateInfoEXT( *reinterpret_cast<MetalSurfaceCreateInfoEXT const *>( &rhs ) )
61439     {}
61440 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61441 
61442     VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61443 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61444     MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61445     {
61446       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const *>( &rhs );
61447       return *this;
61448     }
61449 
setPNextVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61450     MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61451     {
61452       pNext = pNext_;
61453       return *this;
61454     }
61455 
setFlagsVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61456     MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
61457     {
61458       flags = flags_;
61459       return *this;
61460     }
61461 
setPLayerVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61462     MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ ) VULKAN_HPP_NOEXCEPT
61463     {
61464       pLayer = pLayer_;
61465       return *this;
61466     }
61467 
61468 
operator VkMetalSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61469     operator VkMetalSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
61470     {
61471       return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( this );
61472     }
61473 
operator VkMetalSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61474     operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
61475     {
61476       return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>( this );
61477     }
61478 
61479 
61480 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61481     auto operator<=>( MetalSurfaceCreateInfoEXT const& ) const = default;
61482 #else
operator ==VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61483     bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61484     {
61485       return ( sType == rhs.sType )
61486           && ( pNext == rhs.pNext )
61487           && ( flags == rhs.flags )
61488           && ( pLayer == rhs.pLayer );
61489     }
61490 
operator !=VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61491     bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61492     {
61493       return !operator==( rhs );
61494     }
61495 #endif
61496 
61497 
61498 
61499   public:
61500     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
61501     const void* pNext = {};
61502     VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {};
61503     const CAMetalLayer* pLayer = {};
61504 
61505   };
61506   static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
61507   static_assert( std::is_standard_layout<MetalSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
61508 
61509   template <>
61510   struct CppType<StructureType, StructureType::eMetalSurfaceCreateInfoEXT>
61511   {
61512     using Type = MetalSurfaceCreateInfoEXT;
61513   };
61514 #endif /*VK_USE_PLATFORM_METAL_EXT*/
61515 
61516   struct MutableDescriptorTypeListVALVE
61517   {
61518 
61519 
61520 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MutableDescriptorTypeListVALVEVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61521     VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE(uint32_t descriptorTypeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes_ = {}) VULKAN_HPP_NOEXCEPT
61522     : descriptorTypeCount( descriptorTypeCount_ ), pDescriptorTypes( pDescriptorTypes_ )
61523     {}
61524 
61525     VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61526 
MutableDescriptorTypeListVALVEVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61527     MutableDescriptorTypeListVALVE( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
61528       : MutableDescriptorTypeListVALVE( *reinterpret_cast<MutableDescriptorTypeListVALVE const *>( &rhs ) )
61529     {}
61530 
61531 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
MutableDescriptorTypeListVALVEVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61532     MutableDescriptorTypeListVALVE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const & descriptorTypes_ )
61533     : descriptorTypeCount( static_cast<uint32_t>( descriptorTypes_.size() ) ), pDescriptorTypes( descriptorTypes_.data() )
61534     {}
61535 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
61536 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61537 
61538     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListVALVE & operator=( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61539 
operator =VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61540     MutableDescriptorTypeListVALVE & operator=( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
61541     {
61542       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE const *>( &rhs );
61543       return *this;
61544     }
61545 
setDescriptorTypeCountVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61546     MutableDescriptorTypeListVALVE & setDescriptorTypeCount( uint32_t descriptorTypeCount_ ) VULKAN_HPP_NOEXCEPT
61547     {
61548       descriptorTypeCount = descriptorTypeCount_;
61549       return *this;
61550     }
61551 
setPDescriptorTypesVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61552     MutableDescriptorTypeListVALVE & setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT
61553     {
61554       pDescriptorTypes = pDescriptorTypes_;
61555       return *this;
61556     }
61557 
61558 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorTypesVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61559     MutableDescriptorTypeListVALVE & setDescriptorTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const & descriptorTypes_ ) VULKAN_HPP_NOEXCEPT
61560     {
61561       descriptorTypeCount = static_cast<uint32_t>( descriptorTypes_.size() );
61562       pDescriptorTypes = descriptorTypes_.data();
61563       return *this;
61564     }
61565 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
61566 
61567 
operator VkMutableDescriptorTypeListVALVE const&VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61568     operator VkMutableDescriptorTypeListVALVE const&() const VULKAN_HPP_NOEXCEPT
61569     {
61570       return *reinterpret_cast<const VkMutableDescriptorTypeListVALVE*>( this );
61571     }
61572 
operator VkMutableDescriptorTypeListVALVE&VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61573     operator VkMutableDescriptorTypeListVALVE &() VULKAN_HPP_NOEXCEPT
61574     {
61575       return *reinterpret_cast<VkMutableDescriptorTypeListVALVE*>( this );
61576     }
61577 
61578 
61579 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61580     auto operator<=>( MutableDescriptorTypeListVALVE const& ) const = default;
61581 #else
operator ==VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61582     bool operator==( MutableDescriptorTypeListVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT
61583     {
61584       return ( descriptorTypeCount == rhs.descriptorTypeCount )
61585           && ( pDescriptorTypes == rhs.pDescriptorTypes );
61586     }
61587 
operator !=VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE61588     bool operator!=( MutableDescriptorTypeListVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT
61589     {
61590       return !operator==( rhs );
61591     }
61592 #endif
61593 
61594 
61595 
61596   public:
61597     uint32_t descriptorTypeCount = {};
61598     const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes = {};
61599 
61600   };
61601   static_assert( sizeof( MutableDescriptorTypeListVALVE ) == sizeof( VkMutableDescriptorTypeListVALVE ), "struct and wrapper have different size!" );
61602   static_assert( std::is_standard_layout<MutableDescriptorTypeListVALVE>::value, "struct wrapper is not a standard layout!" );
61603 
61604   struct MutableDescriptorTypeCreateInfoVALVE
61605   {
61606     static const bool allowDuplicate = false;
61607     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMutableDescriptorTypeCreateInfoVALVE;
61608 
61609 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MutableDescriptorTypeCreateInfoVALVEVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61610     VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE(uint32_t mutableDescriptorTypeListCount_ = {}, const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists_ = {}) VULKAN_HPP_NOEXCEPT
61611     : mutableDescriptorTypeListCount( mutableDescriptorTypeListCount_ ), pMutableDescriptorTypeLists( pMutableDescriptorTypeLists_ )
61612     {}
61613 
61614     VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61615 
MutableDescriptorTypeCreateInfoVALVEVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61616     MutableDescriptorTypeCreateInfoVALVE( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
61617       : MutableDescriptorTypeCreateInfoVALVE( *reinterpret_cast<MutableDescriptorTypeCreateInfoVALVE const *>( &rhs ) )
61618     {}
61619 
61620 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
MutableDescriptorTypeCreateInfoVALVEVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61621     MutableDescriptorTypeCreateInfoVALVE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE> const & mutableDescriptorTypeLists_ )
61622     : mutableDescriptorTypeListCount( static_cast<uint32_t>( mutableDescriptorTypeLists_.size() ) ), pMutableDescriptorTypeLists( mutableDescriptorTypeLists_.data() )
61623     {}
61624 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
61625 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61626 
61627     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoVALVE & operator=( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61628 
operator =VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61629     MutableDescriptorTypeCreateInfoVALVE & operator=( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
61630     {
61631       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE const *>( &rhs );
61632       return *this;
61633     }
61634 
setPNextVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61635     MutableDescriptorTypeCreateInfoVALVE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61636     {
61637       pNext = pNext_;
61638       return *this;
61639     }
61640 
setMutableDescriptorTypeListCountVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61641     MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT
61642     {
61643       mutableDescriptorTypeListCount = mutableDescriptorTypeListCount_;
61644       return *this;
61645     }
61646 
setPMutableDescriptorTypeListsVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61647     MutableDescriptorTypeCreateInfoVALVE & setPMutableDescriptorTypeLists( const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT
61648     {
61649       pMutableDescriptorTypeLists = pMutableDescriptorTypeLists_;
61650       return *this;
61651     }
61652 
61653 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setMutableDescriptorTypeListsVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61654     MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeLists( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE> const & mutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT
61655     {
61656       mutableDescriptorTypeListCount = static_cast<uint32_t>( mutableDescriptorTypeLists_.size() );
61657       pMutableDescriptorTypeLists = mutableDescriptorTypeLists_.data();
61658       return *this;
61659     }
61660 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
61661 
61662 
operator VkMutableDescriptorTypeCreateInfoVALVE const&VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61663     operator VkMutableDescriptorTypeCreateInfoVALVE const&() const VULKAN_HPP_NOEXCEPT
61664     {
61665       return *reinterpret_cast<const VkMutableDescriptorTypeCreateInfoVALVE*>( this );
61666     }
61667 
operator VkMutableDescriptorTypeCreateInfoVALVE&VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61668     operator VkMutableDescriptorTypeCreateInfoVALVE &() VULKAN_HPP_NOEXCEPT
61669     {
61670       return *reinterpret_cast<VkMutableDescriptorTypeCreateInfoVALVE*>( this );
61671     }
61672 
61673 
61674 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61675     auto operator<=>( MutableDescriptorTypeCreateInfoVALVE const& ) const = default;
61676 #else
operator ==VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61677     bool operator==( MutableDescriptorTypeCreateInfoVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT
61678     {
61679       return ( sType == rhs.sType )
61680           && ( pNext == rhs.pNext )
61681           && ( mutableDescriptorTypeListCount == rhs.mutableDescriptorTypeListCount )
61682           && ( pMutableDescriptorTypeLists == rhs.pMutableDescriptorTypeLists );
61683     }
61684 
operator !=VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE61685     bool operator!=( MutableDescriptorTypeCreateInfoVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT
61686     {
61687       return !operator==( rhs );
61688     }
61689 #endif
61690 
61691 
61692 
61693   public:
61694     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMutableDescriptorTypeCreateInfoVALVE;
61695     const void* pNext = {};
61696     uint32_t mutableDescriptorTypeListCount = {};
61697     const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists = {};
61698 
61699   };
61700   static_assert( sizeof( MutableDescriptorTypeCreateInfoVALVE ) == sizeof( VkMutableDescriptorTypeCreateInfoVALVE ), "struct and wrapper have different size!" );
61701   static_assert( std::is_standard_layout<MutableDescriptorTypeCreateInfoVALVE>::value, "struct wrapper is not a standard layout!" );
61702 
61703   template <>
61704   struct CppType<StructureType, StructureType::eMutableDescriptorTypeCreateInfoVALVE>
61705   {
61706     using Type = MutableDescriptorTypeCreateInfoVALVE;
61707   };
61708 
61709   union PerformanceCounterResultKHR
61710   {
PerformanceCounterResultKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)61711     PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const& rhs ) VULKAN_HPP_NOEXCEPT
61712     {
61713       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
61714     }
61715 
PerformanceCounterResultKHR(int32_t int32_={} )61716     PerformanceCounterResultKHR( int32_t int32_ = {} )
61717       : int32( int32_ )
61718     {}
61719 
PerformanceCounterResultKHR(int64_t int64_)61720     PerformanceCounterResultKHR( int64_t int64_ )
61721       : int64( int64_ )
61722     {}
61723 
PerformanceCounterResultKHR(uint32_t uint32_)61724     PerformanceCounterResultKHR( uint32_t uint32_ )
61725       : uint32( uint32_ )
61726     {}
61727 
PerformanceCounterResultKHR(uint64_t uint64_)61728     PerformanceCounterResultKHR( uint64_t uint64_ )
61729       : uint64( uint64_ )
61730     {}
61731 
PerformanceCounterResultKHR(float float32_)61732     PerformanceCounterResultKHR( float float32_ )
61733       : float32( float32_ )
61734     {}
61735 
PerformanceCounterResultKHR(double float64_)61736     PerformanceCounterResultKHR( double float64_ )
61737       : float64( float64_ )
61738     {}
61739 
setInt32(int32_t int32_)61740     PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
61741     {
61742       int32 = int32_;
61743       return *this;
61744     }
61745 
setInt64(int64_t int64_)61746     PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT
61747     {
61748       int64 = int64_;
61749       return *this;
61750     }
61751 
setUint32(uint32_t uint32_)61752     PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT
61753     {
61754       uint32 = uint32_;
61755       return *this;
61756     }
61757 
setUint64(uint64_t uint64_)61758     PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT
61759     {
61760       uint64 = uint64_;
61761       return *this;
61762     }
61763 
setFloat32(float float32_)61764     PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT
61765     {
61766       float32 = float32_;
61767       return *this;
61768     }
61769 
setFloat64(double float64_)61770     PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT
61771     {
61772       float64 = float64_;
61773       return *this;
61774     }
61775 
operator =(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)61776     VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61777     {
61778       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
61779       return *this;
61780     }
61781 
operator VkPerformanceCounterResultKHR const&() const61782     operator VkPerformanceCounterResultKHR const&() const
61783     {
61784       return *reinterpret_cast<const VkPerformanceCounterResultKHR*>(this);
61785     }
61786 
operator VkPerformanceCounterResultKHR&()61787     operator VkPerformanceCounterResultKHR &()
61788     {
61789       return *reinterpret_cast<VkPerformanceCounterResultKHR*>(this);
61790     }
61791 
61792     int32_t int32;
61793     int64_t int64;
61794     uint32_t uint32;
61795     uint64_t uint64;
61796     float float32;
61797     double float64;
61798   };
61799 
61800   struct PerformanceQuerySubmitInfoKHR
61801   {
61802     static const bool allowDuplicate = false;
61803     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR;
61804 
61805 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61806     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR(uint32_t counterPassIndex_ = {}) VULKAN_HPP_NOEXCEPT
61807     : counterPassIndex( counterPassIndex_ )
61808     {}
61809 
61810     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61811 
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61812     PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61813       : PerformanceQuerySubmitInfoKHR( *reinterpret_cast<PerformanceQuerySubmitInfoKHR const *>( &rhs ) )
61814     {}
61815 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61816 
61817     VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61818 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61819     PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61820     {
61821       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const *>( &rhs );
61822       return *this;
61823     }
61824 
setPNextVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61825     PerformanceQuerySubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61826     {
61827       pNext = pNext_;
61828       return *this;
61829     }
61830 
setCounterPassIndexVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61831     PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT
61832     {
61833       counterPassIndex = counterPassIndex_;
61834       return *this;
61835     }
61836 
61837 
operator VkPerformanceQuerySubmitInfoKHR const&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61838     operator VkPerformanceQuerySubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
61839     {
61840       return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>( this );
61841     }
61842 
operator VkPerformanceQuerySubmitInfoKHR&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61843     operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
61844     {
61845       return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>( this );
61846     }
61847 
61848 
61849 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61850     auto operator<=>( PerformanceQuerySubmitInfoKHR const& ) const = default;
61851 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61852     bool operator==( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
61853     {
61854       return ( sType == rhs.sType )
61855           && ( pNext == rhs.pNext )
61856           && ( counterPassIndex == rhs.counterPassIndex );
61857     }
61858 
operator !=VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61859     bool operator!=( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
61860     {
61861       return !operator==( rhs );
61862     }
61863 #endif
61864 
61865 
61866 
61867   public:
61868     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR;
61869     const void* pNext = {};
61870     uint32_t counterPassIndex = {};
61871 
61872   };
61873   static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), "struct and wrapper have different size!" );
61874   static_assert( std::is_standard_layout<PerformanceQuerySubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
61875 
61876   template <>
61877   struct CppType<StructureType, StructureType::ePerformanceQuerySubmitInfoKHR>
61878   {
61879     using Type = PerformanceQuerySubmitInfoKHR;
61880   };
61881 
61882   struct PhysicalDevice16BitStorageFeatures
61883   {
61884     static const bool allowDuplicate = false;
61885     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures;
61886 
61887 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61888     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
61889     : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ )
61890     {}
61891 
61892     VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61893 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61894     PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61895       : PhysicalDevice16BitStorageFeatures( *reinterpret_cast<PhysicalDevice16BitStorageFeatures const *>( &rhs ) )
61896     {}
61897 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61898 
61899     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61900 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61901     PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61902     {
61903       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const *>( &rhs );
61904       return *this;
61905     }
61906 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61907     PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61908     {
61909       pNext = pNext_;
61910       return *this;
61911     }
61912 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61913     PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
61914     {
61915       storageBuffer16BitAccess = storageBuffer16BitAccess_;
61916       return *this;
61917     }
61918 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61919     PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
61920     {
61921       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
61922       return *this;
61923     }
61924 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61925     PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
61926     {
61927       storagePushConstant16 = storagePushConstant16_;
61928       return *this;
61929     }
61930 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61931     PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
61932     {
61933       storageInputOutput16 = storageInputOutput16_;
61934       return *this;
61935     }
61936 
61937 
operator VkPhysicalDevice16BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61938     operator VkPhysicalDevice16BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
61939     {
61940       return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>( this );
61941     }
61942 
operator VkPhysicalDevice16BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61943     operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
61944     {
61945       return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>( this );
61946     }
61947 
61948 
61949 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61950     auto operator<=>( PhysicalDevice16BitStorageFeatures const& ) const = default;
61951 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61952     bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61953     {
61954       return ( sType == rhs.sType )
61955           && ( pNext == rhs.pNext )
61956           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
61957           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
61958           && ( storagePushConstant16 == rhs.storagePushConstant16 )
61959           && ( storageInputOutput16 == rhs.storageInputOutput16 );
61960     }
61961 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61962     bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61963     {
61964       return !operator==( rhs );
61965     }
61966 #endif
61967 
61968 
61969 
61970   public:
61971     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
61972     void* pNext = {};
61973     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
61974     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
61975     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
61976     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
61977 
61978   };
61979   static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" );
61980   static_assert( std::is_standard_layout<PhysicalDevice16BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
61981 
61982   template <>
61983   struct CppType<StructureType, StructureType::ePhysicalDevice16BitStorageFeatures>
61984   {
61985     using Type = PhysicalDevice16BitStorageFeatures;
61986   };
61987   using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
61988 
61989   struct PhysicalDevice4444FormatsFeaturesEXT
61990   {
61991     static const bool allowDuplicate = false;
61992     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
61993 
61994 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61995     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {}, VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {}) VULKAN_HPP_NOEXCEPT
61996     : formatA4R4G4B4( formatA4R4G4B4_ ), formatA4B4G4R4( formatA4B4G4R4_ )
61997     {}
61998 
61999     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62000 
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62001     PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62002       : PhysicalDevice4444FormatsFeaturesEXT( *reinterpret_cast<PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs ) )
62003     {}
62004 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62005 
62006     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62007 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62008     PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62009     {
62010       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs );
62011       return *this;
62012     }
62013 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62014     PhysicalDevice4444FormatsFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62015     {
62016       pNext = pNext_;
62017       return *this;
62018     }
62019 
setFormatA4R4G4B4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62020     PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT
62021     {
62022       formatA4R4G4B4 = formatA4R4G4B4_;
62023       return *this;
62024     }
62025 
setFormatA4B4G4R4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62026     PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT
62027     {
62028       formatA4B4G4R4 = formatA4B4G4R4_;
62029       return *this;
62030     }
62031 
62032 
operator VkPhysicalDevice4444FormatsFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62033     operator VkPhysicalDevice4444FormatsFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62034     {
62035       return *reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
62036     }
62037 
operator VkPhysicalDevice4444FormatsFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62038     operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62039     {
62040       return *reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
62041     }
62042 
62043 
62044 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62045     auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const& ) const = default;
62046 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62047     bool operator==( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62048     {
62049       return ( sType == rhs.sType )
62050           && ( pNext == rhs.pNext )
62051           && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 )
62052           && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 );
62053     }
62054 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT62055     bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62056     {
62057       return !operator==( rhs );
62058     }
62059 #endif
62060 
62061 
62062 
62063   public:
62064     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
62065     void* pNext = {};
62066     VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {};
62067     VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {};
62068 
62069   };
62070   static_assert( sizeof( PhysicalDevice4444FormatsFeaturesEXT ) == sizeof( VkPhysicalDevice4444FormatsFeaturesEXT ), "struct and wrapper have different size!" );
62071   static_assert( std::is_standard_layout<PhysicalDevice4444FormatsFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62072 
62073   template <>
62074   struct CppType<StructureType, StructureType::ePhysicalDevice4444FormatsFeaturesEXT>
62075   {
62076     using Type = PhysicalDevice4444FormatsFeaturesEXT;
62077   };
62078 
62079   struct PhysicalDevice8BitStorageFeatures
62080   {
62081     static const bool allowDuplicate = false;
62082     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures;
62083 
62084 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62085     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}) VULKAN_HPP_NOEXCEPT
62086     : storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ )
62087     {}
62088 
62089     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62090 
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62091     PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62092       : PhysicalDevice8BitStorageFeatures( *reinterpret_cast<PhysicalDevice8BitStorageFeatures const *>( &rhs ) )
62093     {}
62094 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62095 
62096     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62097 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62098     PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62099     {
62100       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const *>( &rhs );
62101       return *this;
62102     }
62103 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62104     PhysicalDevice8BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62105     {
62106       pNext = pNext_;
62107       return *this;
62108     }
62109 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62110     PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
62111     {
62112       storageBuffer8BitAccess = storageBuffer8BitAccess_;
62113       return *this;
62114     }
62115 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62116     PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
62117     {
62118       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
62119       return *this;
62120     }
62121 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62122     PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
62123     {
62124       storagePushConstant8 = storagePushConstant8_;
62125       return *this;
62126     }
62127 
62128 
operator VkPhysicalDevice8BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62129     operator VkPhysicalDevice8BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
62130     {
62131       return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>( this );
62132     }
62133 
operator VkPhysicalDevice8BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62134     operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
62135     {
62136       return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>( this );
62137     }
62138 
62139 
62140 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62141     auto operator<=>( PhysicalDevice8BitStorageFeatures const& ) const = default;
62142 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62143     bool operator==( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
62144     {
62145       return ( sType == rhs.sType )
62146           && ( pNext == rhs.pNext )
62147           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
62148           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
62149           && ( storagePushConstant8 == rhs.storagePushConstant8 );
62150     }
62151 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures62152     bool operator!=( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
62153     {
62154       return !operator==( rhs );
62155     }
62156 #endif
62157 
62158 
62159 
62160   public:
62161     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures;
62162     void* pNext = {};
62163     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
62164     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
62165     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
62166 
62167   };
62168   static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), "struct and wrapper have different size!" );
62169   static_assert( std::is_standard_layout<PhysicalDevice8BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
62170 
62171   template <>
62172   struct CppType<StructureType, StructureType::ePhysicalDevice8BitStorageFeatures>
62173   {
62174     using Type = PhysicalDevice8BitStorageFeatures;
62175   };
62176   using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
62177 
62178   struct PhysicalDeviceASTCDecodeFeaturesEXT
62179   {
62180     static const bool allowDuplicate = false;
62181     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
62182 
62183 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62184     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {}) VULKAN_HPP_NOEXCEPT
62185     : decodeModeSharedExponent( decodeModeSharedExponent_ )
62186     {}
62187 
62188     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62189 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62190     PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62191       : PhysicalDeviceASTCDecodeFeaturesEXT( *reinterpret_cast<PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs ) )
62192     {}
62193 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62194 
62195     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62196 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62197     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62198     {
62199       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs );
62200       return *this;
62201     }
62202 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62203     PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62204     {
62205       pNext = pNext_;
62206       return *this;
62207     }
62208 
setDecodeModeSharedExponentVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62209     PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
62210     {
62211       decodeModeSharedExponent = decodeModeSharedExponent_;
62212       return *this;
62213     }
62214 
62215 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62216     operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62217     {
62218       return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
62219     }
62220 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62221     operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62222     {
62223       return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
62224     }
62225 
62226 
62227 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62228     auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const& ) const = default;
62229 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62230     bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62231     {
62232       return ( sType == rhs.sType )
62233           && ( pNext == rhs.pNext )
62234           && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
62235     }
62236 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT62237     bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62238     {
62239       return !operator==( rhs );
62240     }
62241 #endif
62242 
62243 
62244 
62245   public:
62246     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
62247     void* pNext = {};
62248     VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {};
62249 
62250   };
62251   static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" );
62252   static_assert( std::is_standard_layout<PhysicalDeviceASTCDecodeFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62253 
62254   template <>
62255   struct CppType<StructureType, StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT>
62256   {
62257     using Type = PhysicalDeviceASTCDecodeFeaturesEXT;
62258   };
62259 
62260   struct PhysicalDeviceAccelerationStructureFeaturesKHR
62261   {
62262     static const bool allowDuplicate = false;
62263     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR;
62264 
62265 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceAccelerationStructureFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62266     VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT
62267     : accelerationStructure( accelerationStructure_ ), accelerationStructureCaptureReplay( accelerationStructureCaptureReplay_ ), accelerationStructureIndirectBuild( accelerationStructureIndirectBuild_ ), accelerationStructureHostCommands( accelerationStructureHostCommands_ ), descriptorBindingAccelerationStructureUpdateAfterBind( descriptorBindingAccelerationStructureUpdateAfterBind_ )
62268     {}
62269 
62270     VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62271 
PhysicalDeviceAccelerationStructureFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62272     PhysicalDeviceAccelerationStructureFeaturesKHR( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62273       : PhysicalDeviceAccelerationStructureFeaturesKHR( *reinterpret_cast<PhysicalDeviceAccelerationStructureFeaturesKHR const *>( &rhs ) )
62274     {}
62275 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62276 
62277     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62278 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62279     PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62280     {
62281       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR const *>( &rhs );
62282       return *this;
62283     }
62284 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62285     PhysicalDeviceAccelerationStructureFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62286     {
62287       pNext = pNext_;
62288       return *this;
62289     }
62290 
setAccelerationStructureVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62291     PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
62292     {
62293       accelerationStructure = accelerationStructure_;
62294       return *this;
62295     }
62296 
setAccelerationStructureCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62297     PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
62298     {
62299       accelerationStructureCaptureReplay = accelerationStructureCaptureReplay_;
62300       return *this;
62301     }
62302 
setAccelerationStructureIndirectBuildVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62303     PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureIndirectBuild( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT
62304     {
62305       accelerationStructureIndirectBuild = accelerationStructureIndirectBuild_;
62306       return *this;
62307     }
62308 
setAccelerationStructureHostCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62309     PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureHostCommands( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT
62310     {
62311       accelerationStructureHostCommands = accelerationStructureHostCommands_;
62312       return *this;
62313     }
62314 
setDescriptorBindingAccelerationStructureUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62315     PhysicalDeviceAccelerationStructureFeaturesKHR & setDescriptorBindingAccelerationStructureUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
62316     {
62317       descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind_;
62318       return *this;
62319     }
62320 
62321 
operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62322     operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
62323     {
62324       return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>( this );
62325     }
62326 
operator VkPhysicalDeviceAccelerationStructureFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62327     operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT
62328     {
62329       return *reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>( this );
62330     }
62331 
62332 
62333 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62334     auto operator<=>( PhysicalDeviceAccelerationStructureFeaturesKHR const& ) const = default;
62335 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62336     bool operator==( PhysicalDeviceAccelerationStructureFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62337     {
62338       return ( sType == rhs.sType )
62339           && ( pNext == rhs.pNext )
62340           && ( accelerationStructure == rhs.accelerationStructure )
62341           && ( accelerationStructureCaptureReplay == rhs.accelerationStructureCaptureReplay )
62342           && ( accelerationStructureIndirectBuild == rhs.accelerationStructureIndirectBuild )
62343           && ( accelerationStructureHostCommands == rhs.accelerationStructureHostCommands )
62344           && ( descriptorBindingAccelerationStructureUpdateAfterBind == rhs.descriptorBindingAccelerationStructureUpdateAfterBind );
62345     }
62346 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR62347     bool operator!=( PhysicalDeviceAccelerationStructureFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62348     {
62349       return !operator==( rhs );
62350     }
62351 #endif
62352 
62353 
62354 
62355   public:
62356     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR;
62357     void* pNext = {};
62358     VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure = {};
62359     VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay = {};
62360     VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild = {};
62361     VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands = {};
62362     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind = {};
62363 
62364   };
62365   static_assert( sizeof( PhysicalDeviceAccelerationStructureFeaturesKHR ) == sizeof( VkPhysicalDeviceAccelerationStructureFeaturesKHR ), "struct and wrapper have different size!" );
62366   static_assert( std::is_standard_layout<PhysicalDeviceAccelerationStructureFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
62367 
62368   template <>
62369   struct CppType<StructureType, StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR>
62370   {
62371     using Type = PhysicalDeviceAccelerationStructureFeaturesKHR;
62372   };
62373 
62374   struct PhysicalDeviceAccelerationStructurePropertiesKHR
62375   {
62376     static const bool allowDuplicate = false;
62377     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR;
62378 
62379 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceAccelerationStructurePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR62380     VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR(uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxPrimitiveCount_ = {}, uint32_t maxPerStageDescriptorAccelerationStructures_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}, uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures_ = {}, uint32_t minAccelerationStructureScratchOffsetAlignment_ = {}) VULKAN_HPP_NOEXCEPT
62381     : maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxPrimitiveCount( maxPrimitiveCount_ ), maxPerStageDescriptorAccelerationStructures( maxPerStageDescriptorAccelerationStructures_ ), maxPerStageDescriptorUpdateAfterBindAccelerationStructures( maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ), maxDescriptorSetUpdateAfterBindAccelerationStructures( maxDescriptorSetUpdateAfterBindAccelerationStructures_ ), minAccelerationStructureScratchOffsetAlignment( minAccelerationStructureScratchOffsetAlignment_ )
62382     {}
62383 
62384     VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62385 
PhysicalDeviceAccelerationStructurePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR62386     PhysicalDeviceAccelerationStructurePropertiesKHR( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62387       : PhysicalDeviceAccelerationStructurePropertiesKHR( *reinterpret_cast<PhysicalDeviceAccelerationStructurePropertiesKHR const *>( &rhs ) )
62388     {}
62389 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62390 
62391     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62392 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR62393     PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62394     {
62395       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR const *>( &rhs );
62396       return *this;
62397     }
62398 
62399 
operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR62400     operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
62401     {
62402       return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>( this );
62403     }
62404 
operator VkPhysicalDeviceAccelerationStructurePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR62405     operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT
62406     {
62407       return *reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>( this );
62408     }
62409 
62410 
62411 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62412     auto operator<=>( PhysicalDeviceAccelerationStructurePropertiesKHR const& ) const = default;
62413 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR62414     bool operator==( PhysicalDeviceAccelerationStructurePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62415     {
62416       return ( sType == rhs.sType )
62417           && ( pNext == rhs.pNext )
62418           && ( maxGeometryCount == rhs.maxGeometryCount )
62419           && ( maxInstanceCount == rhs.maxInstanceCount )
62420           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
62421           && ( maxPerStageDescriptorAccelerationStructures == rhs.maxPerStageDescriptorAccelerationStructures )
62422           && ( maxPerStageDescriptorUpdateAfterBindAccelerationStructures == rhs.maxPerStageDescriptorUpdateAfterBindAccelerationStructures )
62423           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures )
62424           && ( maxDescriptorSetUpdateAfterBindAccelerationStructures == rhs.maxDescriptorSetUpdateAfterBindAccelerationStructures )
62425           && ( minAccelerationStructureScratchOffsetAlignment == rhs.minAccelerationStructureScratchOffsetAlignment );
62426     }
62427 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR62428     bool operator!=( PhysicalDeviceAccelerationStructurePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
62429     {
62430       return !operator==( rhs );
62431     }
62432 #endif
62433 
62434 
62435 
62436   public:
62437     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR;
62438     void* pNext = {};
62439     uint64_t maxGeometryCount = {};
62440     uint64_t maxInstanceCount = {};
62441     uint64_t maxPrimitiveCount = {};
62442     uint32_t maxPerStageDescriptorAccelerationStructures = {};
62443     uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures = {};
62444     uint32_t maxDescriptorSetAccelerationStructures = {};
62445     uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures = {};
62446     uint32_t minAccelerationStructureScratchOffsetAlignment = {};
62447 
62448   };
62449   static_assert( sizeof( PhysicalDeviceAccelerationStructurePropertiesKHR ) == sizeof( VkPhysicalDeviceAccelerationStructurePropertiesKHR ), "struct and wrapper have different size!" );
62450   static_assert( std::is_standard_layout<PhysicalDeviceAccelerationStructurePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
62451 
62452   template <>
62453   struct CppType<StructureType, StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR>
62454   {
62455     using Type = PhysicalDeviceAccelerationStructurePropertiesKHR;
62456   };
62457 
62458   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
62459   {
62460     static const bool allowDuplicate = false;
62461     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
62462 
62463 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62464     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {}) VULKAN_HPP_NOEXCEPT
62465     : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
62466     {}
62467 
62468     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62469 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62470     PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62471       : PhysicalDeviceBlendOperationAdvancedFeaturesEXT( *reinterpret_cast<PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs ) )
62472     {}
62473 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62474 
62475     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62476 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62477     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62478     {
62479       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs );
62480       return *this;
62481     }
62482 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62483     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62484     {
62485       pNext = pNext_;
62486       return *this;
62487     }
62488 
setAdvancedBlendCoherentOperationsVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62489     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
62490     {
62491       advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
62492       return *this;
62493     }
62494 
62495 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62496     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62497     {
62498       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
62499     }
62500 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62501     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62502     {
62503       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
62504     }
62505 
62506 
62507 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62508     auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& ) const = default;
62509 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62510     bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62511     {
62512       return ( sType == rhs.sType )
62513           && ( pNext == rhs.pNext )
62514           && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
62515     }
62516 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT62517     bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62518     {
62519       return !operator==( rhs );
62520     }
62521 #endif
62522 
62523 
62524 
62525   public:
62526     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
62527     void* pNext = {};
62528     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {};
62529 
62530   };
62531   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" );
62532   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62533 
62534   template <>
62535   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT>
62536   {
62537     using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
62538   };
62539 
62540   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
62541   {
62542     static const bool allowDuplicate = false;
62543     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
62544 
62545 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT62546     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
62547     : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ), advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ), advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ), advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ), advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ), advancedBlendAllOperations( advancedBlendAllOperations_ )
62548     {}
62549 
62550     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62551 
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT62552     PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62553       : PhysicalDeviceBlendOperationAdvancedPropertiesEXT( *reinterpret_cast<PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs ) )
62554     {}
62555 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62556 
62557     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62558 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT62559     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62560     {
62561       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs );
62562       return *this;
62563     }
62564 
62565 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT62566     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
62567     {
62568       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
62569     }
62570 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT62571     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
62572     {
62573       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
62574     }
62575 
62576 
62577 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62578     auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& ) const = default;
62579 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT62580     bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62581     {
62582       return ( sType == rhs.sType )
62583           && ( pNext == rhs.pNext )
62584           && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments )
62585           && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend )
62586           && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor )
62587           && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor )
62588           && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap )
62589           && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
62590     }
62591 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT62592     bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62593     {
62594       return !operator==( rhs );
62595     }
62596 #endif
62597 
62598 
62599 
62600   public:
62601     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
62602     void* pNext = {};
62603     uint32_t advancedBlendMaxColorAttachments = {};
62604     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {};
62605     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {};
62606     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {};
62607     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {};
62608     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {};
62609 
62610   };
62611   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" );
62612   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
62613 
62614   template <>
62615   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT>
62616   {
62617     using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
62618   };
62619 
62620   struct PhysicalDeviceBufferDeviceAddressFeatures
62621   {
62622     static const bool allowDuplicate = false;
62623     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
62624 
62625 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62626     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT
62627     : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
62628     {}
62629 
62630     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62631 
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62632     PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62633       : PhysicalDeviceBufferDeviceAddressFeatures( *reinterpret_cast<PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs ) )
62634     {}
62635 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62636 
62637     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62638 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62639     PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62640     {
62641       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs );
62642       return *this;
62643     }
62644 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62645     PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62646     {
62647       pNext = pNext_;
62648       return *this;
62649     }
62650 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62651     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
62652     {
62653       bufferDeviceAddress = bufferDeviceAddress_;
62654       return *this;
62655     }
62656 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62657     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
62658     {
62659       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
62660       return *this;
62661     }
62662 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62663     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
62664     {
62665       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
62666       return *this;
62667     }
62668 
62669 
operator VkPhysicalDeviceBufferDeviceAddressFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62670     operator VkPhysicalDeviceBufferDeviceAddressFeatures const&() const VULKAN_HPP_NOEXCEPT
62671     {
62672       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
62673     }
62674 
operator VkPhysicalDeviceBufferDeviceAddressFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62675     operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
62676     {
62677       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
62678     }
62679 
62680 
62681 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62682     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const& ) const = default;
62683 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62684     bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
62685     {
62686       return ( sType == rhs.sType )
62687           && ( pNext == rhs.pNext )
62688           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
62689           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
62690           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
62691     }
62692 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62693     bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
62694     {
62695       return !operator==( rhs );
62696     }
62697 #endif
62698 
62699 
62700 
62701   public:
62702     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
62703     void* pNext = {};
62704     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
62705     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
62706     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
62707 
62708   };
62709   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), "struct and wrapper have different size!" );
62710   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeatures>::value, "struct wrapper is not a standard layout!" );
62711 
62712   template <>
62713   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeatures>
62714   {
62715     using Type = PhysicalDeviceBufferDeviceAddressFeatures;
62716   };
62717   using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
62718 
62719   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
62720   {
62721     static const bool allowDuplicate = false;
62722     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
62723 
62724 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62725     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT
62726     : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
62727     {}
62728 
62729     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62730 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62731     PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62732       : PhysicalDeviceBufferDeviceAddressFeaturesEXT( *reinterpret_cast<PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs ) )
62733     {}
62734 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62735 
62736     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62737 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62738     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62739     {
62740       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs );
62741       return *this;
62742     }
62743 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62744     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62745     {
62746       pNext = pNext_;
62747       return *this;
62748     }
62749 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62750     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
62751     {
62752       bufferDeviceAddress = bufferDeviceAddress_;
62753       return *this;
62754     }
62755 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62756     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
62757     {
62758       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
62759       return *this;
62760     }
62761 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62762     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
62763     {
62764       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
62765       return *this;
62766     }
62767 
62768 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62769     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62770     {
62771       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
62772     }
62773 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62774     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62775     {
62776       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
62777     }
62778 
62779 
62780 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62781     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& ) const = default;
62782 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62783     bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62784     {
62785       return ( sType == rhs.sType )
62786           && ( pNext == rhs.pNext )
62787           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
62788           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
62789           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
62790     }
62791 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62792     bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62793     {
62794       return !operator==( rhs );
62795     }
62796 #endif
62797 
62798 
62799 
62800   public:
62801     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
62802     void* pNext = {};
62803     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
62804     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
62805     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
62806 
62807   };
62808   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" );
62809   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62810 
62811   template <>
62812   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT>
62813   {
62814     using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
62815   };
62816   using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
62817 
62818   struct PhysicalDeviceCoherentMemoryFeaturesAMD
62819   {
62820     static const bool allowDuplicate = false;
62821     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
62822 
62823 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62824     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD(VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {}) VULKAN_HPP_NOEXCEPT
62825     : deviceCoherentMemory( deviceCoherentMemory_ )
62826     {}
62827 
62828     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62829 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62830     PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
62831       : PhysicalDeviceCoherentMemoryFeaturesAMD( *reinterpret_cast<PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs ) )
62832     {}
62833 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62834 
62835     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62836 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62837     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
62838     {
62839       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs );
62840       return *this;
62841     }
62842 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62843     PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62844     {
62845       pNext = pNext_;
62846       return *this;
62847     }
62848 
setDeviceCoherentMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62849     PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
62850     {
62851       deviceCoherentMemory = deviceCoherentMemory_;
62852       return *this;
62853     }
62854 
62855 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62856     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const VULKAN_HPP_NOEXCEPT
62857     {
62858       return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
62859     }
62860 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62861     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
62862     {
62863       return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
62864     }
62865 
62866 
62867 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62868     auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const& ) const = default;
62869 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62870     bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
62871     {
62872       return ( sType == rhs.sType )
62873           && ( pNext == rhs.pNext )
62874           && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
62875     }
62876 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62877     bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
62878     {
62879       return !operator==( rhs );
62880     }
62881 #endif
62882 
62883 
62884 
62885   public:
62886     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
62887     void* pNext = {};
62888     VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {};
62889 
62890   };
62891   static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" );
62892   static_assert( std::is_standard_layout<PhysicalDeviceCoherentMemoryFeaturesAMD>::value, "struct wrapper is not a standard layout!" );
62893 
62894   template <>
62895   struct CppType<StructureType, StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD>
62896   {
62897     using Type = PhysicalDeviceCoherentMemoryFeaturesAMD;
62898   };
62899 
62900   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
62901   {
62902     static const bool allowDuplicate = false;
62903     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
62904 
62905 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62906     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {}) VULKAN_HPP_NOEXCEPT
62907     : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ), computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
62908     {}
62909 
62910     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62911 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62912     PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62913       : PhysicalDeviceComputeShaderDerivativesFeaturesNV( *reinterpret_cast<PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs ) )
62914     {}
62915 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62916 
62917     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62918 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62919     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62920     {
62921       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs );
62922       return *this;
62923     }
62924 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62925     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62926     {
62927       pNext = pNext_;
62928       return *this;
62929     }
62930 
setComputeDerivativeGroupQuadsVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62931     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
62932     {
62933       computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
62934       return *this;
62935     }
62936 
setComputeDerivativeGroupLinearVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62937     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
62938     {
62939       computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
62940       return *this;
62941     }
62942 
62943 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62944     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62945     {
62946       return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
62947     }
62948 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62949     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
62950     {
62951       return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
62952     }
62953 
62954 
62955 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62956     auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& ) const = default;
62957 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62958     bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62959     {
62960       return ( sType == rhs.sType )
62961           && ( pNext == rhs.pNext )
62962           && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads )
62963           && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
62964     }
62965 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62966     bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62967     {
62968       return !operator==( rhs );
62969     }
62970 #endif
62971 
62972 
62973 
62974   public:
62975     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
62976     void* pNext = {};
62977     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {};
62978     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {};
62979 
62980   };
62981   static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" );
62982   static_assert( std::is_standard_layout<PhysicalDeviceComputeShaderDerivativesFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62983 
62984   template <>
62985   struct CppType<StructureType, StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV>
62986   {
62987     using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV;
62988   };
62989 
62990   struct PhysicalDeviceConditionalRenderingFeaturesEXT
62991   {
62992     static const bool allowDuplicate = false;
62993     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
62994 
62995 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62996     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {}) VULKAN_HPP_NOEXCEPT
62997     : conditionalRendering( conditionalRendering_ ), inheritedConditionalRendering( inheritedConditionalRendering_ )
62998     {}
62999 
63000     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63001 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63002     PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63003       : PhysicalDeviceConditionalRenderingFeaturesEXT( *reinterpret_cast<PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs ) )
63004     {}
63005 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63006 
63007     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63008 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63009     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63010     {
63011       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs );
63012       return *this;
63013     }
63014 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63015     PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63016     {
63017       pNext = pNext_;
63018       return *this;
63019     }
63020 
setConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63021     PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
63022     {
63023       conditionalRendering = conditionalRendering_;
63024       return *this;
63025     }
63026 
setInheritedConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63027     PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
63028     {
63029       inheritedConditionalRendering = inheritedConditionalRendering_;
63030       return *this;
63031     }
63032 
63033 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63034     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63035     {
63036       return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
63037     }
63038 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63039     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63040     {
63041       return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
63042     }
63043 
63044 
63045 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63046     auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const& ) const = default;
63047 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63048     bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63049     {
63050       return ( sType == rhs.sType )
63051           && ( pNext == rhs.pNext )
63052           && ( conditionalRendering == rhs.conditionalRendering )
63053           && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
63054     }
63055 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT63056     bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63057     {
63058       return !operator==( rhs );
63059     }
63060 #endif
63061 
63062 
63063 
63064   public:
63065     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
63066     void* pNext = {};
63067     VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {};
63068     VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {};
63069 
63070   };
63071   static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" );
63072   static_assert( std::is_standard_layout<PhysicalDeviceConditionalRenderingFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63073 
63074   template <>
63075   struct CppType<StructureType, StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT>
63076   {
63077     using Type = PhysicalDeviceConditionalRenderingFeaturesEXT;
63078   };
63079 
63080   struct PhysicalDeviceConservativeRasterizationPropertiesEXT
63081   {
63082     static const bool allowDuplicate = false;
63083     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
63084 
63085 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT63086     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
63087     : primitiveOverestimationSize( primitiveOverestimationSize_ ), maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ), extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ), primitiveUnderestimation( primitiveUnderestimation_ ), conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ), degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ), degenerateLinesRasterized( degenerateLinesRasterized_ ), fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ), conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
63088     {}
63089 
63090     VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63091 
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT63092     PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63093       : PhysicalDeviceConservativeRasterizationPropertiesEXT( *reinterpret_cast<PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs ) )
63094     {}
63095 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63096 
63097     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63098 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT63099     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63100     {
63101       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs );
63102       return *this;
63103     }
63104 
63105 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT63106     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
63107     {
63108       return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
63109     }
63110 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT63111     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
63112     {
63113       return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
63114     }
63115 
63116 
63117 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63118     auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const& ) const = default;
63119 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT63120     bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63121     {
63122       return ( sType == rhs.sType )
63123           && ( pNext == rhs.pNext )
63124           && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize )
63125           && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize )
63126           && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity )
63127           && ( primitiveUnderestimation == rhs.primitiveUnderestimation )
63128           && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization )
63129           && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized )
63130           && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized )
63131           && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable )
63132           && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
63133     }
63134 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT63135     bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63136     {
63137       return !operator==( rhs );
63138     }
63139 #endif
63140 
63141 
63142 
63143   public:
63144     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
63145     void* pNext = {};
63146     float primitiveOverestimationSize = {};
63147     float maxExtraPrimitiveOverestimationSize = {};
63148     float extraPrimitiveOverestimationSizeGranularity = {};
63149     VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {};
63150     VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {};
63151     VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {};
63152     VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {};
63153     VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {};
63154     VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {};
63155 
63156   };
63157   static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
63158   static_assert( std::is_standard_layout<PhysicalDeviceConservativeRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
63159 
63160   template <>
63161   struct CppType<StructureType, StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT>
63162   {
63163     using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
63164   };
63165 
63166   struct PhysicalDeviceCooperativeMatrixFeaturesNV
63167   {
63168     static const bool allowDuplicate = false;
63169     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
63170 
63171 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63172     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {}) VULKAN_HPP_NOEXCEPT
63173     : cooperativeMatrix( cooperativeMatrix_ ), cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
63174     {}
63175 
63176     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63177 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63178     PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63179       : PhysicalDeviceCooperativeMatrixFeaturesNV( *reinterpret_cast<PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs ) )
63180     {}
63181 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63182 
63183     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63184 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63185     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63186     {
63187       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs );
63188       return *this;
63189     }
63190 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63191     PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63192     {
63193       pNext = pNext_;
63194       return *this;
63195     }
63196 
setCooperativeMatrixVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63197     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
63198     {
63199       cooperativeMatrix = cooperativeMatrix_;
63200       return *this;
63201     }
63202 
setCooperativeMatrixRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63203     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
63204     {
63205       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
63206       return *this;
63207     }
63208 
63209 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63210     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63211     {
63212       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
63213     }
63214 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63215     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
63216     {
63217       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
63218     }
63219 
63220 
63221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63222     auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const& ) const = default;
63223 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63224     bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63225     {
63226       return ( sType == rhs.sType )
63227           && ( pNext == rhs.pNext )
63228           && ( cooperativeMatrix == rhs.cooperativeMatrix )
63229           && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
63230     }
63231 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV63232     bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63233     {
63234       return !operator==( rhs );
63235     }
63236 #endif
63237 
63238 
63239 
63240   public:
63241     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
63242     void* pNext = {};
63243     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
63244     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
63245 
63246   };
63247   static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" );
63248   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63249 
63250   template <>
63251   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV>
63252   {
63253     using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
63254   };
63255 
63256   struct PhysicalDeviceCooperativeMatrixPropertiesNV
63257   {
63258     static const bool allowDuplicate = false;
63259     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
63260 
63261 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV63262     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV(VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {}) VULKAN_HPP_NOEXCEPT
63263     : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
63264     {}
63265 
63266     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63267 
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV63268     PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63269       : PhysicalDeviceCooperativeMatrixPropertiesNV( *reinterpret_cast<PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs ) )
63270     {}
63271 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63272 
63273     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63274 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV63275     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63276     {
63277       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs );
63278       return *this;
63279     }
63280 
63281 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV63282     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
63283     {
63284       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
63285     }
63286 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV63287     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
63288     {
63289       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
63290     }
63291 
63292 
63293 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63294     auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const& ) const = default;
63295 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV63296     bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63297     {
63298       return ( sType == rhs.sType )
63299           && ( pNext == rhs.pNext )
63300           && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
63301     }
63302 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV63303     bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63304     {
63305       return !operator==( rhs );
63306     }
63307 #endif
63308 
63309 
63310 
63311   public:
63312     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
63313     void* pNext = {};
63314     VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
63315 
63316   };
63317   static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
63318   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
63319 
63320   template <>
63321   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV>
63322   {
63323     using Type = PhysicalDeviceCooperativeMatrixPropertiesNV;
63324   };
63325 
63326   struct PhysicalDeviceCornerSampledImageFeaturesNV
63327   {
63328     static const bool allowDuplicate = false;
63329     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
63330 
63331 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63332     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {}) VULKAN_HPP_NOEXCEPT
63333     : cornerSampledImage( cornerSampledImage_ )
63334     {}
63335 
63336     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63337 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63338     PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63339       : PhysicalDeviceCornerSampledImageFeaturesNV( *reinterpret_cast<PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs ) )
63340     {}
63341 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63342 
63343     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63344 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63345     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63346     {
63347       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs );
63348       return *this;
63349     }
63350 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63351     PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63352     {
63353       pNext = pNext_;
63354       return *this;
63355     }
63356 
setCornerSampledImageVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63357     PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
63358     {
63359       cornerSampledImage = cornerSampledImage_;
63360       return *this;
63361     }
63362 
63363 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63364     operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63365     {
63366       return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
63367     }
63368 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63369     operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
63370     {
63371       return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
63372     }
63373 
63374 
63375 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63376     auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const& ) const = default;
63377 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63378     bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63379     {
63380       return ( sType == rhs.sType )
63381           && ( pNext == rhs.pNext )
63382           && ( cornerSampledImage == rhs.cornerSampledImage );
63383     }
63384 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV63385     bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63386     {
63387       return !operator==( rhs );
63388     }
63389 #endif
63390 
63391 
63392 
63393   public:
63394     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
63395     void* pNext = {};
63396     VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {};
63397 
63398   };
63399   static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" );
63400   static_assert( std::is_standard_layout<PhysicalDeviceCornerSampledImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63401 
63402   template <>
63403   struct CppType<StructureType, StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV>
63404   {
63405     using Type = PhysicalDeviceCornerSampledImageFeaturesNV;
63406   };
63407 
63408   struct PhysicalDeviceCoverageReductionModeFeaturesNV
63409   {
63410     static const bool allowDuplicate = false;
63411     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
63412 
63413 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63414     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {}) VULKAN_HPP_NOEXCEPT
63415     : coverageReductionMode( coverageReductionMode_ )
63416     {}
63417 
63418     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63419 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63420     PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63421       : PhysicalDeviceCoverageReductionModeFeaturesNV( *reinterpret_cast<PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs ) )
63422     {}
63423 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63424 
63425     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63426 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63427     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63428     {
63429       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs );
63430       return *this;
63431     }
63432 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63433     PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63434     {
63435       pNext = pNext_;
63436       return *this;
63437     }
63438 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63439     PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
63440     {
63441       coverageReductionMode = coverageReductionMode_;
63442       return *this;
63443     }
63444 
63445 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63446     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63447     {
63448       return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
63449     }
63450 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63451     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
63452     {
63453       return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
63454     }
63455 
63456 
63457 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63458     auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const& ) const = default;
63459 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63460     bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63461     {
63462       return ( sType == rhs.sType )
63463           && ( pNext == rhs.pNext )
63464           && ( coverageReductionMode == rhs.coverageReductionMode );
63465     }
63466 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV63467     bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63468     {
63469       return !operator==( rhs );
63470     }
63471 #endif
63472 
63473 
63474 
63475   public:
63476     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
63477     void* pNext = {};
63478     VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {};
63479 
63480   };
63481   static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" );
63482   static_assert( std::is_standard_layout<PhysicalDeviceCoverageReductionModeFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63483 
63484   template <>
63485   struct CppType<StructureType, StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV>
63486   {
63487     using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
63488   };
63489 
63490   struct PhysicalDeviceCustomBorderColorFeaturesEXT
63491   {
63492     static const bool allowDuplicate = false;
63493     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
63494 
63495 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63496     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {}) VULKAN_HPP_NOEXCEPT
63497     : customBorderColors( customBorderColors_ ), customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
63498     {}
63499 
63500     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63501 
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63502     PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63503       : PhysicalDeviceCustomBorderColorFeaturesEXT( *reinterpret_cast<PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs ) )
63504     {}
63505 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63506 
63507     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63508 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63509     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63510     {
63511       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs );
63512       return *this;
63513     }
63514 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63515     PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63516     {
63517       pNext = pNext_;
63518       return *this;
63519     }
63520 
setCustomBorderColorsVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63521     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
63522     {
63523       customBorderColors = customBorderColors_;
63524       return *this;
63525     }
63526 
setCustomBorderColorWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63527     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
63528     {
63529       customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
63530       return *this;
63531     }
63532 
63533 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63534     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63535     {
63536       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
63537     }
63538 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63539     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63540     {
63541       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
63542     }
63543 
63544 
63545 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63546     auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const& ) const = default;
63547 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63548     bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63549     {
63550       return ( sType == rhs.sType )
63551           && ( pNext == rhs.pNext )
63552           && ( customBorderColors == rhs.customBorderColors )
63553           && ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat );
63554     }
63555 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT63556     bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63557     {
63558       return !operator==( rhs );
63559     }
63560 #endif
63561 
63562 
63563 
63564   public:
63565     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
63566     void* pNext = {};
63567     VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {};
63568     VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {};
63569 
63570   };
63571   static_assert( sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorFeaturesEXT ), "struct and wrapper have different size!" );
63572   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63573 
63574   template <>
63575   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT>
63576   {
63577     using Type = PhysicalDeviceCustomBorderColorFeaturesEXT;
63578   };
63579 
63580   struct PhysicalDeviceCustomBorderColorPropertiesEXT
63581   {
63582     static const bool allowDuplicate = false;
63583     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
63584 
63585 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63586     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t maxCustomBorderColorSamplers_ = {}) VULKAN_HPP_NOEXCEPT
63587     : maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
63588     {}
63589 
63590     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63591 
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63592     PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63593       : PhysicalDeviceCustomBorderColorPropertiesEXT( *reinterpret_cast<PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs ) )
63594     {}
63595 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63596 
63597     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63598 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63599     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63600     {
63601       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs );
63602       return *this;
63603     }
63604 
63605 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63606     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
63607     {
63608       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
63609     }
63610 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63611     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
63612     {
63613       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
63614     }
63615 
63616 
63617 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63618     auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const& ) const = default;
63619 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63620     bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63621     {
63622       return ( sType == rhs.sType )
63623           && ( pNext == rhs.pNext )
63624           && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers );
63625     }
63626 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63627     bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63628     {
63629       return !operator==( rhs );
63630     }
63631 #endif
63632 
63633 
63634 
63635   public:
63636     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
63637     void* pNext = {};
63638     uint32_t maxCustomBorderColorSamplers = {};
63639 
63640   };
63641   static_assert( sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorPropertiesEXT ), "struct and wrapper have different size!" );
63642   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
63643 
63644   template <>
63645   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT>
63646   {
63647     using Type = PhysicalDeviceCustomBorderColorPropertiesEXT;
63648   };
63649 
63650   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
63651   {
63652     static const bool allowDuplicate = false;
63653     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
63654 
63655 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63656     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {}) VULKAN_HPP_NOEXCEPT
63657     : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
63658     {}
63659 
63660     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63661 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63662     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63663       : PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( *reinterpret_cast<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs ) )
63664     {}
63665 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63666 
63667     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63668 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63669     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63670     {
63671       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs );
63672       return *this;
63673     }
63674 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63675     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63676     {
63677       pNext = pNext_;
63678       return *this;
63679     }
63680 
setDedicatedAllocationImageAliasingVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63681     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
63682     {
63683       dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
63684       return *this;
63685     }
63686 
63687 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63688     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63689     {
63690       return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
63691     }
63692 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63693     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
63694     {
63695       return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
63696     }
63697 
63698 
63699 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63700     auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& ) const = default;
63701 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63702     bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63703     {
63704       return ( sType == rhs.sType )
63705           && ( pNext == rhs.pNext )
63706           && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
63707     }
63708 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63709     bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63710     {
63711       return !operator==( rhs );
63712     }
63713 #endif
63714 
63715 
63716 
63717   public:
63718     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
63719     void* pNext = {};
63720     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {};
63721 
63722   };
63723   static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" );
63724   static_assert( std::is_standard_layout<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63725 
63726   template <>
63727   struct CppType<StructureType, StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
63728   {
63729     using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
63730   };
63731 
63732   struct PhysicalDeviceDepthClipEnableFeaturesEXT
63733   {
63734     static const bool allowDuplicate = false;
63735     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
63736 
63737 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63738     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT
63739     : depthClipEnable( depthClipEnable_ )
63740     {}
63741 
63742     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63743 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63744     PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63745       : PhysicalDeviceDepthClipEnableFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs ) )
63746     {}
63747 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63748 
63749     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63750 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63751     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63752     {
63753       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs );
63754       return *this;
63755     }
63756 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63757     PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63758     {
63759       pNext = pNext_;
63760       return *this;
63761     }
63762 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63763     PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
63764     {
63765       depthClipEnable = depthClipEnable_;
63766       return *this;
63767     }
63768 
63769 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63770     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63771     {
63772       return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
63773     }
63774 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63775     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63776     {
63777       return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
63778     }
63779 
63780 
63781 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63782     auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const& ) const = default;
63783 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63784     bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63785     {
63786       return ( sType == rhs.sType )
63787           && ( pNext == rhs.pNext )
63788           && ( depthClipEnable == rhs.depthClipEnable );
63789     }
63790 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63791     bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63792     {
63793       return !operator==( rhs );
63794     }
63795 #endif
63796 
63797 
63798 
63799   public:
63800     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
63801     void* pNext = {};
63802     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
63803 
63804   };
63805   static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" );
63806   static_assert( std::is_standard_layout<PhysicalDeviceDepthClipEnableFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63807 
63808   template <>
63809   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT>
63810   {
63811     using Type = PhysicalDeviceDepthClipEnableFeaturesEXT;
63812   };
63813 
63814   struct PhysicalDeviceDepthStencilResolveProperties
63815   {
63816     static const bool allowDuplicate = false;
63817     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
63818 
63819 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63820     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
63821     : supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ )
63822     {}
63823 
63824     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63825 
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63826     PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63827       : PhysicalDeviceDepthStencilResolveProperties( *reinterpret_cast<PhysicalDeviceDepthStencilResolveProperties const *>( &rhs ) )
63828     {}
63829 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63830 
63831     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63832 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63833     PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63834     {
63835       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const *>( &rhs );
63836       return *this;
63837     }
63838 
63839 
operator VkPhysicalDeviceDepthStencilResolveProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63840     operator VkPhysicalDeviceDepthStencilResolveProperties const&() const VULKAN_HPP_NOEXCEPT
63841     {
63842       return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>( this );
63843     }
63844 
operator VkPhysicalDeviceDepthStencilResolveProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63845     operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
63846     {
63847       return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>( this );
63848     }
63849 
63850 
63851 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63852     auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const& ) const = default;
63853 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63854     bool operator==( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63855     {
63856       return ( sType == rhs.sType )
63857           && ( pNext == rhs.pNext )
63858           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
63859           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
63860           && ( independentResolveNone == rhs.independentResolveNone )
63861           && ( independentResolve == rhs.independentResolve );
63862     }
63863 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63864     bool operator!=( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63865     {
63866       return !operator==( rhs );
63867     }
63868 #endif
63869 
63870 
63871 
63872   public:
63873     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
63874     void* pNext = {};
63875     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
63876     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
63877     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
63878     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
63879 
63880   };
63881   static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), "struct and wrapper have different size!" );
63882   static_assert( std::is_standard_layout<PhysicalDeviceDepthStencilResolveProperties>::value, "struct wrapper is not a standard layout!" );
63883 
63884   template <>
63885   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthStencilResolveProperties>
63886   {
63887     using Type = PhysicalDeviceDepthStencilResolveProperties;
63888   };
63889   using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
63890 
63891   struct PhysicalDeviceDescriptorIndexingFeatures
63892   {
63893     static const bool allowDuplicate = false;
63894     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
63895 
63896 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63897     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
63898     : 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_ )
63899     {}
63900 
63901     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63902 
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63903     PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
63904       : PhysicalDeviceDescriptorIndexingFeatures( *reinterpret_cast<PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs ) )
63905     {}
63906 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63907 
63908     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63909 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63910     PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
63911     {
63912       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs );
63913       return *this;
63914     }
63915 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63916     PhysicalDeviceDescriptorIndexingFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63917     {
63918       pNext = pNext_;
63919       return *this;
63920     }
63921 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63922     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63923     {
63924       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
63925       return *this;
63926     }
63927 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63928     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63929     {
63930       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
63931       return *this;
63932     }
63933 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63934     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63935     {
63936       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
63937       return *this;
63938     }
63939 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63940     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63941     {
63942       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
63943       return *this;
63944     }
63945 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63946     PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63947     {
63948       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
63949       return *this;
63950     }
63951 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63952     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63953     {
63954       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
63955       return *this;
63956     }
63957 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63958     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63959     {
63960       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
63961       return *this;
63962     }
63963 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63964     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63965     {
63966       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
63967       return *this;
63968     }
63969 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63970     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63971     {
63972       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
63973       return *this;
63974     }
63975 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63976     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63977     {
63978       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
63979       return *this;
63980     }
63981 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63982     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63983     {
63984       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
63985       return *this;
63986     }
63987 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63988     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63989     {
63990       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
63991       return *this;
63992     }
63993 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63994     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63995     {
63996       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
63997       return *this;
63998     }
63999 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64000     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
64001     {
64002       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
64003       return *this;
64004     }
64005 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64006     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
64007     {
64008       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
64009       return *this;
64010     }
64011 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64012     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
64013     {
64014       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
64015       return *this;
64016     }
64017 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64018     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
64019     {
64020       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
64021       return *this;
64022     }
64023 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64024     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
64025     {
64026       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
64027       return *this;
64028     }
64029 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64030     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
64031     {
64032       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
64033       return *this;
64034     }
64035 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64036     PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
64037     {
64038       runtimeDescriptorArray = runtimeDescriptorArray_;
64039       return *this;
64040     }
64041 
64042 
operator VkPhysicalDeviceDescriptorIndexingFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64043     operator VkPhysicalDeviceDescriptorIndexingFeatures const&() const VULKAN_HPP_NOEXCEPT
64044     {
64045       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
64046     }
64047 
operator VkPhysicalDeviceDescriptorIndexingFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64048     operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
64049     {
64050       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
64051     }
64052 
64053 
64054 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64055     auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const& ) const = default;
64056 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64057     bool operator==( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
64058     {
64059       return ( sType == rhs.sType )
64060           && ( pNext == rhs.pNext )
64061           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
64062           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
64063           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
64064           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
64065           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
64066           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
64067           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
64068           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
64069           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
64070           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
64071           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
64072           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
64073           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
64074           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
64075           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
64076           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
64077           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
64078           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
64079           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
64080           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
64081     }
64082 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures64083     bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
64084     {
64085       return !operator==( rhs );
64086     }
64087 #endif
64088 
64089 
64090 
64091   public:
64092     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
64093     void* pNext = {};
64094     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
64095     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
64096     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
64097     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
64098     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
64099     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
64100     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
64101     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
64102     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
64103     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
64104     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
64105     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
64106     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
64107     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
64108     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
64109     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
64110     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
64111     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
64112     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
64113     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
64114 
64115   };
64116   static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), "struct and wrapper have different size!" );
64117   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingFeatures>::value, "struct wrapper is not a standard layout!" );
64118 
64119   template <>
64120   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingFeatures>
64121   {
64122     using Type = PhysicalDeviceDescriptorIndexingFeatures;
64123   };
64124   using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
64125 
64126   struct PhysicalDeviceDescriptorIndexingProperties
64127   {
64128     static const bool allowDuplicate = false;
64129     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
64130 
64131 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties64132     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
64133     : 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_ )
64134     {}
64135 
64136     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64137 
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties64138     PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64139       : PhysicalDeviceDescriptorIndexingProperties( *reinterpret_cast<PhysicalDeviceDescriptorIndexingProperties const *>( &rhs ) )
64140     {}
64141 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64142 
64143     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64144 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties64145     PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64146     {
64147       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const *>( &rhs );
64148       return *this;
64149     }
64150 
64151 
operator VkPhysicalDeviceDescriptorIndexingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties64152     operator VkPhysicalDeviceDescriptorIndexingProperties const&() const VULKAN_HPP_NOEXCEPT
64153     {
64154       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>( this );
64155     }
64156 
operator VkPhysicalDeviceDescriptorIndexingProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties64157     operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
64158     {
64159       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>( this );
64160     }
64161 
64162 
64163 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64164     auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const& ) const = default;
64165 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties64166     bool operator==( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64167     {
64168       return ( sType == rhs.sType )
64169           && ( pNext == rhs.pNext )
64170           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
64171           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
64172           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
64173           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
64174           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
64175           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
64176           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
64177           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
64178           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
64179           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
64180           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
64181           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
64182           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
64183           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
64184           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
64185           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
64186           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
64187           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
64188           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
64189           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
64190           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
64191           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
64192           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
64193     }
64194 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties64195     bool operator!=( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64196     {
64197       return !operator==( rhs );
64198     }
64199 #endif
64200 
64201 
64202 
64203   public:
64204     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
64205     void* pNext = {};
64206     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
64207     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
64208     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
64209     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
64210     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
64211     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
64212     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
64213     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
64214     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
64215     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
64216     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
64217     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
64218     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
64219     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
64220     uint32_t maxPerStageUpdateAfterBindResources = {};
64221     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
64222     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
64223     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
64224     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
64225     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
64226     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
64227     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
64228     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
64229 
64230   };
64231   static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), "struct and wrapper have different size!" );
64232   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingProperties>::value, "struct wrapper is not a standard layout!" );
64233 
64234   template <>
64235   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingProperties>
64236   {
64237     using Type = PhysicalDeviceDescriptorIndexingProperties;
64238   };
64239   using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
64240 
64241   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
64242   {
64243     static const bool allowDuplicate = false;
64244     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
64245 
64246 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64247     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {}) VULKAN_HPP_NOEXCEPT
64248     : deviceGeneratedCommands( deviceGeneratedCommands_ )
64249     {}
64250 
64251     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64252 
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64253     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64254       : PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs ) )
64255     {}
64256 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64257 
64258     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64259 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64260     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64261     {
64262       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs );
64263       return *this;
64264     }
64265 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64266     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64267     {
64268       pNext = pNext_;
64269       return *this;
64270     }
64271 
setDeviceGeneratedCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64272     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
64273     {
64274       deviceGeneratedCommands = deviceGeneratedCommands_;
64275       return *this;
64276     }
64277 
64278 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64279     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
64280     {
64281       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
64282     }
64283 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64284     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
64285     {
64286       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
64287     }
64288 
64289 
64290 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64291     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& ) const = default;
64292 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64293     bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64294     {
64295       return ( sType == rhs.sType )
64296           && ( pNext == rhs.pNext )
64297           && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands );
64298     }
64299 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV64300     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64301     {
64302       return !operator==( rhs );
64303     }
64304 #endif
64305 
64306 
64307 
64308   public:
64309     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
64310     void* pNext = {};
64311     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {};
64312 
64313   };
64314   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV ), "struct and wrapper have different size!" );
64315   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
64316 
64317   template <>
64318   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
64319   {
64320     using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
64321   };
64322 
64323   struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
64324   {
64325     static const bool allowDuplicate = false;
64326     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
64327 
64328 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV64329     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
64330     : maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ ), maxIndirectSequenceCount( maxIndirectSequenceCount_ ), maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ ), maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ ), maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ ), maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ ), minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ ), minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ ), minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
64331     {}
64332 
64333     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64334 
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV64335     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64336       : PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs ) )
64337     {}
64338 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64339 
64340     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64341 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV64342     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64343     {
64344       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs );
64345       return *this;
64346     }
64347 
64348 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV64349     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
64350     {
64351       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
64352     }
64353 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV64354     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
64355     {
64356       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
64357     }
64358 
64359 
64360 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64361     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& ) const = default;
64362 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV64363     bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64364     {
64365       return ( sType == rhs.sType )
64366           && ( pNext == rhs.pNext )
64367           && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount )
64368           && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount )
64369           && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount )
64370           && ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount )
64371           && ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset )
64372           && ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride )
64373           && ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment )
64374           && ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment )
64375           && ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment );
64376     }
64377 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV64378     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64379     {
64380       return !operator==( rhs );
64381     }
64382 #endif
64383 
64384 
64385 
64386   public:
64387     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
64388     void* pNext = {};
64389     uint32_t maxGraphicsShaderGroupCount = {};
64390     uint32_t maxIndirectSequenceCount = {};
64391     uint32_t maxIndirectCommandsTokenCount = {};
64392     uint32_t maxIndirectCommandsStreamCount = {};
64393     uint32_t maxIndirectCommandsTokenOffset = {};
64394     uint32_t maxIndirectCommandsStreamStride = {};
64395     uint32_t minSequencesCountBufferOffsetAlignment = {};
64396     uint32_t minSequencesIndexBufferOffsetAlignment = {};
64397     uint32_t minIndirectCommandsBufferOffsetAlignment = {};
64398 
64399   };
64400   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV ), "struct and wrapper have different size!" );
64401   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
64402 
64403   template <>
64404   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
64405   {
64406     using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
64407   };
64408 
64409   struct PhysicalDeviceDeviceMemoryReportFeaturesEXT
64410   {
64411     static const bool allowDuplicate = false;
64412     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
64413 
64414 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64415     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {}) VULKAN_HPP_NOEXCEPT
64416     : deviceMemoryReport( deviceMemoryReport_ )
64417     {}
64418 
64419     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64420 
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64421     PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64422       : PhysicalDeviceDeviceMemoryReportFeaturesEXT( *reinterpret_cast<PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs ) )
64423     {}
64424 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64425 
64426     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64427 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64428     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64429     {
64430       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs );
64431       return *this;
64432     }
64433 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64434     PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64435     {
64436       pNext = pNext_;
64437       return *this;
64438     }
64439 
setDeviceMemoryReportVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64440     PhysicalDeviceDeviceMemoryReportFeaturesEXT & setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
64441     {
64442       deviceMemoryReport = deviceMemoryReport_;
64443       return *this;
64444     }
64445 
64446 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64447     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64448     {
64449       return *reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
64450     }
64451 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64452     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64453     {
64454       return *reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
64455     }
64456 
64457 
64458 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64459     auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& ) const = default;
64460 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64461     bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64462     {
64463       return ( sType == rhs.sType )
64464           && ( pNext == rhs.pNext )
64465           && ( deviceMemoryReport == rhs.deviceMemoryReport );
64466     }
64467 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT64468     bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64469     {
64470       return !operator==( rhs );
64471     }
64472 #endif
64473 
64474 
64475 
64476   public:
64477     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
64478     void* pNext = {};
64479     VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {};
64480 
64481   };
64482   static_assert( sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) == sizeof( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT ), "struct and wrapper have different size!" );
64483   static_assert( std::is_standard_layout<PhysicalDeviceDeviceMemoryReportFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64484 
64485   template <>
64486   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT>
64487   {
64488     using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT;
64489   };
64490 
64491   struct PhysicalDeviceDiagnosticsConfigFeaturesNV
64492   {
64493     static const bool allowDuplicate = false;
64494     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
64495 
64496 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64497     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {}) VULKAN_HPP_NOEXCEPT
64498     : diagnosticsConfig( diagnosticsConfig_ )
64499     {}
64500 
64501     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64502 
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64503     PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64504       : PhysicalDeviceDiagnosticsConfigFeaturesNV( *reinterpret_cast<PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs ) )
64505     {}
64506 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64507 
64508     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64509 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64510     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64511     {
64512       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs );
64513       return *this;
64514     }
64515 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64516     PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64517     {
64518       pNext = pNext_;
64519       return *this;
64520     }
64521 
setDiagnosticsConfigVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64522     PhysicalDeviceDiagnosticsConfigFeaturesNV & setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
64523     {
64524       diagnosticsConfig = diagnosticsConfig_;
64525       return *this;
64526     }
64527 
64528 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64529     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
64530     {
64531       return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
64532     }
64533 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64534     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
64535     {
64536       return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
64537     }
64538 
64539 
64540 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64541     auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const& ) const = default;
64542 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64543     bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64544     {
64545       return ( sType == rhs.sType )
64546           && ( pNext == rhs.pNext )
64547           && ( diagnosticsConfig == rhs.diagnosticsConfig );
64548     }
64549 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64550     bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64551     {
64552       return !operator==( rhs );
64553     }
64554 #endif
64555 
64556 
64557 
64558   public:
64559     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
64560     void* pNext = {};
64561     VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {};
64562 
64563   };
64564   static_assert( sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) == sizeof( VkPhysicalDeviceDiagnosticsConfigFeaturesNV ), "struct and wrapper have different size!" );
64565   static_assert( std::is_standard_layout<PhysicalDeviceDiagnosticsConfigFeaturesNV>::value, "struct wrapper is not a standard layout!" );
64566 
64567   template <>
64568   struct CppType<StructureType, StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV>
64569   {
64570     using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV;
64571   };
64572 
64573   struct PhysicalDeviceDiscardRectanglePropertiesEXT
64574   {
64575     static const bool allowDuplicate = false;
64576     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
64577 
64578 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64579     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT(uint32_t maxDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT
64580     : maxDiscardRectangles( maxDiscardRectangles_ )
64581     {}
64582 
64583     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64584 
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64585     PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64586       : PhysicalDeviceDiscardRectanglePropertiesEXT( *reinterpret_cast<PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs ) )
64587     {}
64588 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64589 
64590     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64591 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64592     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64593     {
64594       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs );
64595       return *this;
64596     }
64597 
64598 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64599     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64600     {
64601       return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
64602     }
64603 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64604     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
64605     {
64606       return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
64607     }
64608 
64609 
64610 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64611     auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const& ) const = default;
64612 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64613     bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64614     {
64615       return ( sType == rhs.sType )
64616           && ( pNext == rhs.pNext )
64617           && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
64618     }
64619 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64620     bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64621     {
64622       return !operator==( rhs );
64623     }
64624 #endif
64625 
64626 
64627 
64628   public:
64629     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
64630     void* pNext = {};
64631     uint32_t maxDiscardRectangles = {};
64632 
64633   };
64634   static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" );
64635   static_assert( std::is_standard_layout<PhysicalDeviceDiscardRectanglePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64636 
64637   template <>
64638   struct CppType<StructureType, StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT>
64639   {
64640     using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
64641   };
64642 
64643   struct PhysicalDeviceDriverProperties
64644   {
64645     static const bool allowDuplicate = false;
64646     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties;
64647 
64648 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64649     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
64650     : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ )
64651     {}
64652 
64653     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64654 
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64655     PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64656       : PhysicalDeviceDriverProperties( *reinterpret_cast<PhysicalDeviceDriverProperties const *>( &rhs ) )
64657     {}
64658 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64659 
64660     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64661 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64662     PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64663     {
64664       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const *>( &rhs );
64665       return *this;
64666     }
64667 
64668 
operator VkPhysicalDeviceDriverProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64669     operator VkPhysicalDeviceDriverProperties const&() const VULKAN_HPP_NOEXCEPT
64670     {
64671       return *reinterpret_cast<const VkPhysicalDeviceDriverProperties*>( this );
64672     }
64673 
operator VkPhysicalDeviceDriverProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64674     operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
64675     {
64676       return *reinterpret_cast<VkPhysicalDeviceDriverProperties*>( this );
64677     }
64678 
64679 
64680 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64681     auto operator<=>( PhysicalDeviceDriverProperties const& ) const = default;
64682 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64683     bool operator==( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64684     {
64685       return ( sType == rhs.sType )
64686           && ( pNext == rhs.pNext )
64687           && ( driverID == rhs.driverID )
64688           && ( driverName == rhs.driverName )
64689           && ( driverInfo == rhs.driverInfo )
64690           && ( conformanceVersion == rhs.conformanceVersion );
64691     }
64692 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64693     bool operator!=( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64694     {
64695       return !operator==( rhs );
64696     }
64697 #endif
64698 
64699 
64700 
64701   public:
64702     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties;
64703     void* pNext = {};
64704     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
64705     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
64706     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
64707     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
64708 
64709   };
64710   static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), "struct and wrapper have different size!" );
64711   static_assert( std::is_standard_layout<PhysicalDeviceDriverProperties>::value, "struct wrapper is not a standard layout!" );
64712 
64713   template <>
64714   struct CppType<StructureType, StructureType::ePhysicalDeviceDriverProperties>
64715   {
64716     using Type = PhysicalDeviceDriverProperties;
64717   };
64718   using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
64719 
64720   struct PhysicalDeviceExclusiveScissorFeaturesNV
64721   {
64722     static const bool allowDuplicate = false;
64723     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
64724 
64725 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64726     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {}) VULKAN_HPP_NOEXCEPT
64727     : exclusiveScissor( exclusiveScissor_ )
64728     {}
64729 
64730     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64731 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64732     PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64733       : PhysicalDeviceExclusiveScissorFeaturesNV( *reinterpret_cast<PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs ) )
64734     {}
64735 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64736 
64737     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64738 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64739     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64740     {
64741       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs );
64742       return *this;
64743     }
64744 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64745     PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64746     {
64747       pNext = pNext_;
64748       return *this;
64749     }
64750 
setExclusiveScissorVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64751     PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT
64752     {
64753       exclusiveScissor = exclusiveScissor_;
64754       return *this;
64755     }
64756 
64757 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64758     operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
64759     {
64760       return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
64761     }
64762 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64763     operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
64764     {
64765       return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
64766     }
64767 
64768 
64769 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64770     auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const& ) const = default;
64771 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64772     bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64773     {
64774       return ( sType == rhs.sType )
64775           && ( pNext == rhs.pNext )
64776           && ( exclusiveScissor == rhs.exclusiveScissor );
64777     }
64778 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64779     bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64780     {
64781       return !operator==( rhs );
64782     }
64783 #endif
64784 
64785 
64786 
64787   public:
64788     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
64789     void* pNext = {};
64790     VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {};
64791 
64792   };
64793   static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" );
64794   static_assert( std::is_standard_layout<PhysicalDeviceExclusiveScissorFeaturesNV>::value, "struct wrapper is not a standard layout!" );
64795 
64796   template <>
64797   struct CppType<StructureType, StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV>
64798   {
64799     using Type = PhysicalDeviceExclusiveScissorFeaturesNV;
64800   };
64801 
64802   struct PhysicalDeviceExtendedDynamicStateFeaturesEXT
64803   {
64804     static const bool allowDuplicate = false;
64805     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
64806 
64807 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64808     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {}) VULKAN_HPP_NOEXCEPT
64809     : extendedDynamicState( extendedDynamicState_ )
64810     {}
64811 
64812     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64813 
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64814     PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64815       : PhysicalDeviceExtendedDynamicStateFeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs ) )
64816     {}
64817 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64818 
64819     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64820 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64821     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64822     {
64823       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs );
64824       return *this;
64825     }
64826 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64827     PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64828     {
64829       pNext = pNext_;
64830       return *this;
64831     }
64832 
setExtendedDynamicStateVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64833     PhysicalDeviceExtendedDynamicStateFeaturesEXT & setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
64834     {
64835       extendedDynamicState = extendedDynamicState_;
64836       return *this;
64837     }
64838 
64839 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64840     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64841     {
64842       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
64843     }
64844 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64845     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64846     {
64847       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
64848     }
64849 
64850 
64851 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64852     auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& ) const = default;
64853 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64854     bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64855     {
64856       return ( sType == rhs.sType )
64857           && ( pNext == rhs.pNext )
64858           && ( extendedDynamicState == rhs.extendedDynamicState );
64859     }
64860 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64861     bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64862     {
64863       return !operator==( rhs );
64864     }
64865 #endif
64866 
64867 
64868 
64869   public:
64870     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
64871     void* pNext = {};
64872     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {};
64873 
64874   };
64875   static_assert( sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) == sizeof( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT ), "struct and wrapper have different size!" );
64876   static_assert( std::is_standard_layout<PhysicalDeviceExtendedDynamicStateFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64877 
64878   template <>
64879   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT>
64880   {
64881     using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
64882   };
64883 
64884   struct PhysicalDeviceExternalImageFormatInfo
64885   {
64886     static const bool allowDuplicate = false;
64887     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
64888 
64889 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64890     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
64891     : handleType( handleType_ )
64892     {}
64893 
64894     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64895 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64896     PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64897       : PhysicalDeviceExternalImageFormatInfo( *reinterpret_cast<PhysicalDeviceExternalImageFormatInfo const *>( &rhs ) )
64898     {}
64899 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64900 
64901     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64902 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64903     PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64904     {
64905       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const *>( &rhs );
64906       return *this;
64907     }
64908 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64909     PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64910     {
64911       pNext = pNext_;
64912       return *this;
64913     }
64914 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64915     PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
64916     {
64917       handleType = handleType_;
64918       return *this;
64919     }
64920 
64921 
operator VkPhysicalDeviceExternalImageFormatInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64922     operator VkPhysicalDeviceExternalImageFormatInfo const&() const VULKAN_HPP_NOEXCEPT
64923     {
64924       return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>( this );
64925     }
64926 
operator VkPhysicalDeviceExternalImageFormatInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64927     operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
64928     {
64929       return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>( this );
64930     }
64931 
64932 
64933 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64934     auto operator<=>( PhysicalDeviceExternalImageFormatInfo const& ) const = default;
64935 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64936     bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
64937     {
64938       return ( sType == rhs.sType )
64939           && ( pNext == rhs.pNext )
64940           && ( handleType == rhs.handleType );
64941     }
64942 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64943     bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
64944     {
64945       return !operator==( rhs );
64946     }
64947 #endif
64948 
64949 
64950 
64951   public:
64952     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
64953     const void* pNext = {};
64954     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
64955 
64956   };
64957   static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" );
64958   static_assert( std::is_standard_layout<PhysicalDeviceExternalImageFormatInfo>::value, "struct wrapper is not a standard layout!" );
64959 
64960   template <>
64961   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalImageFormatInfo>
64962   {
64963     using Type = PhysicalDeviceExternalImageFormatInfo;
64964   };
64965   using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
64966 
64967   struct PhysicalDeviceExternalMemoryHostPropertiesEXT
64968   {
64969     static const bool allowDuplicate = false;
64970     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
64971 
64972 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64973     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {}) VULKAN_HPP_NOEXCEPT
64974     : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
64975     {}
64976 
64977     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64978 
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64979     PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64980       : PhysicalDeviceExternalMemoryHostPropertiesEXT( *reinterpret_cast<PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs ) )
64981     {}
64982 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64983 
64984     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64985 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64986     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64987     {
64988       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs );
64989       return *this;
64990     }
64991 
64992 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64993     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64994     {
64995       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
64996     }
64997 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64998     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
64999     {
65000       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
65001     }
65002 
65003 
65004 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65005     auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const& ) const = default;
65006 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT65007     bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65008     {
65009       return ( sType == rhs.sType )
65010           && ( pNext == rhs.pNext )
65011           && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
65012     }
65013 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT65014     bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65015     {
65016       return !operator==( rhs );
65017     }
65018 #endif
65019 
65020 
65021 
65022   public:
65023     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
65024     void* pNext = {};
65025     VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {};
65026 
65027   };
65028   static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" );
65029   static_assert( std::is_standard_layout<PhysicalDeviceExternalMemoryHostPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
65030 
65031   template <>
65032   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT>
65033   {
65034     using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
65035   };
65036 
65037   struct PhysicalDeviceFloatControlsProperties
65038   {
65039     static const bool allowDuplicate = false;
65040     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties;
65041 
65042 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties65043     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
65044     : 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_ )
65045     {}
65046 
65047     VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65048 
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties65049     PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65050       : PhysicalDeviceFloatControlsProperties( *reinterpret_cast<PhysicalDeviceFloatControlsProperties const *>( &rhs ) )
65051     {}
65052 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65053 
65054     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65055 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties65056     PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65057     {
65058       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const *>( &rhs );
65059       return *this;
65060     }
65061 
65062 
operator VkPhysicalDeviceFloatControlsProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties65063     operator VkPhysicalDeviceFloatControlsProperties const&() const VULKAN_HPP_NOEXCEPT
65064     {
65065       return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>( this );
65066     }
65067 
operator VkPhysicalDeviceFloatControlsProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties65068     operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
65069     {
65070       return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>( this );
65071     }
65072 
65073 
65074 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65075     auto operator<=>( PhysicalDeviceFloatControlsProperties const& ) const = default;
65076 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties65077     bool operator==( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65078     {
65079       return ( sType == rhs.sType )
65080           && ( pNext == rhs.pNext )
65081           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
65082           && ( roundingModeIndependence == rhs.roundingModeIndependence )
65083           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
65084           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
65085           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
65086           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
65087           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
65088           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
65089           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
65090           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
65091           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
65092           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
65093           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
65094           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
65095           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
65096           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
65097           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
65098     }
65099 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties65100     bool operator!=( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65101     {
65102       return !operator==( rhs );
65103     }
65104 #endif
65105 
65106 
65107 
65108   public:
65109     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties;
65110     void* pNext = {};
65111     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
65112     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
65113     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
65114     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
65115     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
65116     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
65117     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
65118     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
65119     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
65120     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
65121     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
65122     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
65123     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
65124     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
65125     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
65126     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
65127     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
65128 
65129   };
65130   static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), "struct and wrapper have different size!" );
65131   static_assert( std::is_standard_layout<PhysicalDeviceFloatControlsProperties>::value, "struct wrapper is not a standard layout!" );
65132 
65133   template <>
65134   struct CppType<StructureType, StructureType::ePhysicalDeviceFloatControlsProperties>
65135   {
65136     using Type = PhysicalDeviceFloatControlsProperties;
65137   };
65138   using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
65139 
65140   struct PhysicalDeviceFragmentDensityMap2FeaturesEXT
65141   {
65142     static const bool allowDuplicate = false;
65143     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
65144 
65145 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65146     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {}) VULKAN_HPP_NOEXCEPT
65147     : fragmentDensityMapDeferred( fragmentDensityMapDeferred_ )
65148     {}
65149 
65150     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65151 
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65152     PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65153       : PhysicalDeviceFragmentDensityMap2FeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs ) )
65154     {}
65155 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65156 
65157     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65158 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65159     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65160     {
65161       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs );
65162       return *this;
65163     }
65164 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65165     PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65166     {
65167       pNext = pNext_;
65168       return *this;
65169     }
65170 
setFragmentDensityMapDeferredVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65171     PhysicalDeviceFragmentDensityMap2FeaturesEXT & setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
65172     {
65173       fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
65174       return *this;
65175     }
65176 
65177 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65178     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65179     {
65180       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
65181     }
65182 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65183     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
65184     {
65185       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
65186     }
65187 
65188 
65189 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65190     auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& ) const = default;
65191 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65192     bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65193     {
65194       return ( sType == rhs.sType )
65195           && ( pNext == rhs.pNext )
65196           && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred );
65197     }
65198 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT65199     bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65200     {
65201       return !operator==( rhs );
65202     }
65203 #endif
65204 
65205 
65206 
65207   public:
65208     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
65209     void* pNext = {};
65210     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {};
65211 
65212   };
65213   static_assert( sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT ), "struct and wrapper have different size!" );
65214   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMap2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65215 
65216   template <>
65217   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT>
65218   {
65219     using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT;
65220   };
65221 
65222   struct PhysicalDeviceFragmentDensityMap2PropertiesEXT
65223   {
65224     static const bool allowDuplicate = false;
65225     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
65226 
65227 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT65228     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {}, uint32_t maxSubsampledArrayLayers_ = {}, uint32_t maxDescriptorSetSubsampledSamplers_ = {}) VULKAN_HPP_NOEXCEPT
65229     : subsampledLoads( subsampledLoads_ ), subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ ), maxSubsampledArrayLayers( maxSubsampledArrayLayers_ ), maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ )
65230     {}
65231 
65232     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65233 
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT65234     PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65235       : PhysicalDeviceFragmentDensityMap2PropertiesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs ) )
65236     {}
65237 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65238 
65239     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65240 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT65241     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65242     {
65243       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs );
65244       return *this;
65245     }
65246 
65247 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT65248     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
65249     {
65250       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
65251     }
65252 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT65253     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
65254     {
65255       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
65256     }
65257 
65258 
65259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65260     auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& ) const = default;
65261 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT65262     bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65263     {
65264       return ( sType == rhs.sType )
65265           && ( pNext == rhs.pNext )
65266           && ( subsampledLoads == rhs.subsampledLoads )
65267           && ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess )
65268           && ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers )
65269           && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers );
65270     }
65271 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT65272     bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65273     {
65274       return !operator==( rhs );
65275     }
65276 #endif
65277 
65278 
65279 
65280   public:
65281     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
65282     void* pNext = {};
65283     VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {};
65284     VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {};
65285     uint32_t maxSubsampledArrayLayers = {};
65286     uint32_t maxDescriptorSetSubsampledSamplers = {};
65287 
65288   };
65289   static_assert( sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT ), "struct and wrapper have different size!" );
65290   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMap2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
65291 
65292   template <>
65293   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT>
65294   {
65295     using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT;
65296   };
65297 
65298   struct PhysicalDeviceFragmentDensityMapFeaturesEXT
65299   {
65300     static const bool allowDuplicate = false;
65301     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
65302 
65303 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65304     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {}) VULKAN_HPP_NOEXCEPT
65305     : fragmentDensityMap( fragmentDensityMap_ ), fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ), fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
65306     {}
65307 
65308     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65309 
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65310     PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65311       : PhysicalDeviceFragmentDensityMapFeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs ) )
65312     {}
65313 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65314 
65315     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65316 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65317     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65318     {
65319       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs );
65320       return *this;
65321     }
65322 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65323     PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65324     {
65325       pNext = pNext_;
65326       return *this;
65327     }
65328 
setFragmentDensityMapVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65329     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
65330     {
65331       fragmentDensityMap = fragmentDensityMap_;
65332       return *this;
65333     }
65334 
setFragmentDensityMapDynamicVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65335     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
65336     {
65337       fragmentDensityMapDynamic = fragmentDensityMapDynamic_;
65338       return *this;
65339     }
65340 
setFragmentDensityMapNonSubsampledImagesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65341     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
65342     {
65343       fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
65344       return *this;
65345     }
65346 
65347 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65348     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65349     {
65350       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
65351     }
65352 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65353     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65354     {
65355       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
65356     }
65357 
65358 
65359 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65360     auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const& ) const = default;
65361 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65362     bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65363     {
65364       return ( sType == rhs.sType )
65365           && ( pNext == rhs.pNext )
65366           && ( fragmentDensityMap == rhs.fragmentDensityMap )
65367           && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic )
65368           && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
65369     }
65370 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT65371     bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65372     {
65373       return !operator==( rhs );
65374     }
65375 #endif
65376 
65377 
65378 
65379   public:
65380     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
65381     void* pNext = {};
65382     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {};
65383     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {};
65384     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {};
65385 
65386   };
65387   static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" );
65388   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65389 
65390   template <>
65391   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT>
65392   {
65393     using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT;
65394   };
65395 
65396   struct PhysicalDeviceFragmentDensityMapPropertiesEXT
65397   {
65398     static const bool allowDuplicate = false;
65399     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
65400 
65401 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT65402     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {}) VULKAN_HPP_NOEXCEPT
65403     : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ), maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ), fragmentDensityInvocations( fragmentDensityInvocations_ )
65404     {}
65405 
65406     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65407 
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT65408     PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65409       : PhysicalDeviceFragmentDensityMapPropertiesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs ) )
65410     {}
65411 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65412 
65413     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65414 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT65415     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65416     {
65417       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs );
65418       return *this;
65419     }
65420 
65421 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT65422     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
65423     {
65424       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
65425     }
65426 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT65427     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
65428     {
65429       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
65430     }
65431 
65432 
65433 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65434     auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const& ) const = default;
65435 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT65436     bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65437     {
65438       return ( sType == rhs.sType )
65439           && ( pNext == rhs.pNext )
65440           && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize )
65441           && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize )
65442           && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
65443     }
65444 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT65445     bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65446     {
65447       return !operator==( rhs );
65448     }
65449 #endif
65450 
65451 
65452 
65453   public:
65454     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
65455     void* pNext = {};
65456     VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {};
65457     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {};
65458     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {};
65459 
65460   };
65461   static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" );
65462   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
65463 
65464   template <>
65465   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT>
65466   {
65467     using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT;
65468   };
65469 
65470   struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV
65471   {
65472     static const bool allowDuplicate = false;
65473     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
65474 
65475 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65476     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {}) VULKAN_HPP_NOEXCEPT
65477     : fragmentShaderBarycentric( fragmentShaderBarycentric_ )
65478     {}
65479 
65480     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65481 
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65482     PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65483       : PhysicalDeviceFragmentShaderBarycentricFeaturesNV( *reinterpret_cast<PhysicalDeviceFragmentShaderBarycentricFeaturesNV const *>( &rhs ) )
65484     {}
65485 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65486 
65487     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65488 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65489     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65490     {
65491       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV const *>( &rhs );
65492       return *this;
65493     }
65494 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65495     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65496     {
65497       pNext = pNext_;
65498       return *this;
65499     }
65500 
setFragmentShaderBarycentricVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65501     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
65502     {
65503       fragmentShaderBarycentric = fragmentShaderBarycentric_;
65504       return *this;
65505     }
65506 
65507 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65508     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
65509     {
65510       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
65511     }
65512 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65513     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT
65514     {
65515       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
65516     }
65517 
65518 
65519 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65520     auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& ) const = default;
65521 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65522     bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65523     {
65524       return ( sType == rhs.sType )
65525           && ( pNext == rhs.pNext )
65526           && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
65527     }
65528 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65529     bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65530     {
65531       return !operator==( rhs );
65532     }
65533 #endif
65534 
65535 
65536 
65537   public:
65538     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
65539     void* pNext = {};
65540     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {};
65541 
65542   };
65543   static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" );
65544   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderBarycentricFeaturesNV>::value, "struct wrapper is not a standard layout!" );
65545 
65546   template <>
65547   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV>
65548   {
65549     using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
65550   };
65551 
65552   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
65553   {
65554     static const bool allowDuplicate = false;
65555     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
65556 
65557 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65558     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {}) VULKAN_HPP_NOEXCEPT
65559     : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ), fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ), fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
65560     {}
65561 
65562     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65563 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65564     PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65565       : PhysicalDeviceFragmentShaderInterlockFeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs ) )
65566     {}
65567 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65568 
65569     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65570 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65571     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65572     {
65573       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs );
65574       return *this;
65575     }
65576 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65577     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65578     {
65579       pNext = pNext_;
65580       return *this;
65581     }
65582 
setFragmentShaderSampleInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65583     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
65584     {
65585       fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
65586       return *this;
65587     }
65588 
setFragmentShaderPixelInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65589     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
65590     {
65591       fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
65592       return *this;
65593     }
65594 
setFragmentShaderShadingRateInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65595     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
65596     {
65597       fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
65598       return *this;
65599     }
65600 
65601 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65602     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65603     {
65604       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
65605     }
65606 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65607     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65608     {
65609       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
65610     }
65611 
65612 
65613 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65614     auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& ) const = default;
65615 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65616     bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65617     {
65618       return ( sType == rhs.sType )
65619           && ( pNext == rhs.pNext )
65620           && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock )
65621           && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock )
65622           && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
65623     }
65624 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65625     bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65626     {
65627       return !operator==( rhs );
65628     }
65629 #endif
65630 
65631 
65632 
65633   public:
65634     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
65635     void* pNext = {};
65636     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {};
65637     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {};
65638     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {};
65639 
65640   };
65641   static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" );
65642   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderInterlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65643 
65644   template <>
65645   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT>
65646   {
65647     using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
65648   };
65649 
65650   struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
65651   {
65652     static const bool allowDuplicate = false;
65653     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
65654 
65655 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateEnumsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65656     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ = {}, VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {}, VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {}) VULKAN_HPP_NOEXCEPT
65657     : fragmentShadingRateEnums( fragmentShadingRateEnums_ ), supersampleFragmentShadingRates( supersampleFragmentShadingRates_ ), noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ )
65658     {}
65659 
65660     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65661 
PhysicalDeviceFragmentShadingRateEnumsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65662     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65663       : PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( *reinterpret_cast<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs ) )
65664     {}
65665 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65666 
65667     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65668 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65669     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65670     {
65671       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs );
65672       return *this;
65673     }
65674 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65675     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65676     {
65677       pNext = pNext_;
65678       return *this;
65679     }
65680 
setFragmentShadingRateEnumsVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65681     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT
65682     {
65683       fragmentShadingRateEnums = fragmentShadingRateEnums_;
65684       return *this;
65685     }
65686 
setSupersampleFragmentShadingRatesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65687     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
65688     {
65689       supersampleFragmentShadingRates = supersampleFragmentShadingRates_;
65690       return *this;
65691     }
65692 
setNoInvocationFragmentShadingRatesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65693     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
65694     {
65695       noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_;
65696       return *this;
65697     }
65698 
65699 
operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65700     operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
65701     {
65702       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>( this );
65703     }
65704 
operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65705     operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT
65706     {
65707       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>( this );
65708     }
65709 
65710 
65711 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65712     auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& ) const = default;
65713 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65714     bool operator==( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65715     {
65716       return ( sType == rhs.sType )
65717           && ( pNext == rhs.pNext )
65718           && ( fragmentShadingRateEnums == rhs.fragmentShadingRateEnums )
65719           && ( supersampleFragmentShadingRates == rhs.supersampleFragmentShadingRates )
65720           && ( noInvocationFragmentShadingRates == rhs.noInvocationFragmentShadingRates );
65721     }
65722 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65723     bool operator!=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65724     {
65725       return !operator==( rhs );
65726     }
65727 #endif
65728 
65729 
65730 
65731   public:
65732     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
65733     void* pNext = {};
65734     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums = {};
65735     VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates = {};
65736     VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates = {};
65737 
65738   };
65739   static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV ), "struct and wrapper have different size!" );
65740   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
65741 
65742   template <>
65743   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV>
65744   {
65745     using Type = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
65746   };
65747 
65748   struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
65749   {
65750     static const bool allowDuplicate = false;
65751     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
65752 
65753 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateEnumsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65754     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1) VULKAN_HPP_NOEXCEPT
65755     : maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ )
65756     {}
65757 
65758     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65759 
PhysicalDeviceFragmentShadingRateEnumsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65760     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65761       : PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( *reinterpret_cast<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs ) )
65762     {}
65763 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65764 
65765     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65766 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65767     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65768     {
65769       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs );
65770       return *this;
65771     }
65772 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65773     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65774     {
65775       pNext = pNext_;
65776       return *this;
65777     }
65778 
setMaxFragmentShadingRateInvocationCountVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65779     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setMaxFragmentShadingRateInvocationCount( VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ ) VULKAN_HPP_NOEXCEPT
65780     {
65781       maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_;
65782       return *this;
65783     }
65784 
65785 
operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65786     operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
65787     {
65788       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>( this );
65789     }
65790 
operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65791     operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT
65792     {
65793       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>( this );
65794     }
65795 
65796 
65797 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65798     auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& ) const = default;
65799 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65800     bool operator==( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65801     {
65802       return ( sType == rhs.sType )
65803           && ( pNext == rhs.pNext )
65804           && ( maxFragmentShadingRateInvocationCount == rhs.maxFragmentShadingRateInvocationCount );
65805     }
65806 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65807     bool operator!=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65808     {
65809       return !operator==( rhs );
65810     }
65811 #endif
65812 
65813 
65814 
65815   public:
65816     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
65817     void* pNext = {};
65818     VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
65819 
65820   };
65821   static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV ) == sizeof( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV ), "struct and wrapper have different size!" );
65822   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
65823 
65824   template <>
65825   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV>
65826   {
65827     using Type = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
65828   };
65829 
65830   struct PhysicalDeviceFragmentShadingRateFeaturesKHR
65831   {
65832     static const bool allowDuplicate = false;
65833     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
65834 
65835 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65836     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {}) VULKAN_HPP_NOEXCEPT
65837     : pipelineFragmentShadingRate( pipelineFragmentShadingRate_ ), primitiveFragmentShadingRate( primitiveFragmentShadingRate_ ), attachmentFragmentShadingRate( attachmentFragmentShadingRate_ )
65838     {}
65839 
65840     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65841 
PhysicalDeviceFragmentShadingRateFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65842     PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65843       : PhysicalDeviceFragmentShadingRateFeaturesKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs ) )
65844     {}
65845 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65846 
65847     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65848 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65849     PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65850     {
65851       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs );
65852       return *this;
65853     }
65854 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65855     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65856     {
65857       pNext = pNext_;
65858       return *this;
65859     }
65860 
setPipelineFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65861     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65862     {
65863       pipelineFragmentShadingRate = pipelineFragmentShadingRate_;
65864       return *this;
65865     }
65866 
setPrimitiveFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65867     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65868     {
65869       primitiveFragmentShadingRate = primitiveFragmentShadingRate_;
65870       return *this;
65871     }
65872 
setAttachmentFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65873     PhysicalDeviceFragmentShadingRateFeaturesKHR & setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65874     {
65875       attachmentFragmentShadingRate = attachmentFragmentShadingRate_;
65876       return *this;
65877     }
65878 
65879 
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65880     operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
65881     {
65882       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>( this );
65883     }
65884 
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65885     operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT
65886     {
65887       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>( this );
65888     }
65889 
65890 
65891 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65892     auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const& ) const = default;
65893 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65894     bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65895     {
65896       return ( sType == rhs.sType )
65897           && ( pNext == rhs.pNext )
65898           && ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate )
65899           && ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate )
65900           && ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate );
65901     }
65902 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65903     bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65904     {
65905       return !operator==( rhs );
65906     }
65907 #endif
65908 
65909 
65910 
65911   public:
65912     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
65913     void* pNext = {};
65914     VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {};
65915     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {};
65916     VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {};
65917 
65918   };
65919   static_assert( sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateFeaturesKHR ), "struct and wrapper have different size!" );
65920   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
65921 
65922   template <>
65923   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR>
65924   {
65925     using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR;
65926   };
65927 
65928   struct PhysicalDeviceFragmentShadingRatePropertiesKHR
65929   {
65930     static const bool allowDuplicate = false;
65931     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
65932 
65933 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRatePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65934     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR(VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize_ = {}, uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports_ = {}, VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize_ = {}, uint32_t maxFragmentSizeAspectRatio_ = {}, uint32_t maxFragmentShadingRateCoverageSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {}) VULKAN_HPP_NOEXCEPT
65935     : minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ ), primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ ), layeredShadingRateAttachments( layeredShadingRateAttachments_ ), fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ ), maxFragmentSize( maxFragmentSize_ ), maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ ), maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ ), maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ ), fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ ), fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ ), fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ ), fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ ), fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ ), fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ ), fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ )
65936     {}
65937 
65938     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65939 
PhysicalDeviceFragmentShadingRatePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65940     PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65941       : PhysicalDeviceFragmentShadingRatePropertiesKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs ) )
65942     {}
65943 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65944 
65945     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65946 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65947     PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65948     {
65949       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs );
65950       return *this;
65951     }
65952 
65953 
operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65954     operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
65955     {
65956       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>( this );
65957     }
65958 
operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65959     operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT
65960     {
65961       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>( this );
65962     }
65963 
65964 
65965 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65966     auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const& ) const = default;
65967 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65968     bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65969     {
65970       return ( sType == rhs.sType )
65971           && ( pNext == rhs.pNext )
65972           && ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize )
65973           && ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize )
65974           && ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio )
65975           && ( primitiveFragmentShadingRateWithMultipleViewports == rhs.primitiveFragmentShadingRateWithMultipleViewports )
65976           && ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments )
65977           && ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps )
65978           && ( maxFragmentSize == rhs.maxFragmentSize )
65979           && ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio )
65980           && ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples )
65981           && ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples )
65982           && ( fragmentShadingRateWithShaderDepthStencilWrites == rhs.fragmentShadingRateWithShaderDepthStencilWrites )
65983           && ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask )
65984           && ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask )
65985           && ( fragmentShadingRateWithConservativeRasterization == rhs.fragmentShadingRateWithConservativeRasterization )
65986           && ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock )
65987           && ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations )
65988           && ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner );
65989     }
65990 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65991     bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65992     {
65993       return !operator==( rhs );
65994     }
65995 #endif
65996 
65997 
65998 
65999   public:
66000     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
66001     void* pNext = {};
66002     VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {};
66003     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {};
66004     uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {};
66005     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {};
66006     VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {};
66007     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {};
66008     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {};
66009     uint32_t maxFragmentSizeAspectRatio = {};
66010     uint32_t maxFragmentShadingRateCoverageSamples = {};
66011     VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
66012     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {};
66013     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {};
66014     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {};
66015     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {};
66016     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {};
66017     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {};
66018     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {};
66019 
66020   };
66021   static_assert( sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRatePropertiesKHR ), "struct and wrapper have different size!" );
66022   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRatePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
66023 
66024   template <>
66025   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR>
66026   {
66027     using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR;
66028   };
66029 
66030   struct PhysicalDeviceGroupProperties
66031   {
66032     static const bool allowDuplicate = false;
66033     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties;
66034 
66035 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties66036     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
66037     : physicalDeviceCount( physicalDeviceCount_ ), physicalDevices( physicalDevices_ ), subsetAllocation( subsetAllocation_ )
66038     {}
66039 
66040     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66041 
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties66042     PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66043       : PhysicalDeviceGroupProperties( *reinterpret_cast<PhysicalDeviceGroupProperties const *>( &rhs ) )
66044     {}
66045 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66046 
66047     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66048 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties66049     PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66050     {
66051       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const *>( &rhs );
66052       return *this;
66053     }
66054 
66055 
operator VkPhysicalDeviceGroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties66056     operator VkPhysicalDeviceGroupProperties const&() const VULKAN_HPP_NOEXCEPT
66057     {
66058       return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>( this );
66059     }
66060 
operator VkPhysicalDeviceGroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties66061     operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
66062     {
66063       return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>( this );
66064     }
66065 
66066 
66067 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66068     auto operator<=>( PhysicalDeviceGroupProperties const& ) const = default;
66069 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties66070     bool operator==( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66071     {
66072       return ( sType == rhs.sType )
66073           && ( pNext == rhs.pNext )
66074           && ( physicalDeviceCount == rhs.physicalDeviceCount )
66075           && ( physicalDevices == rhs.physicalDevices )
66076           && ( subsetAllocation == rhs.subsetAllocation );
66077     }
66078 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties66079     bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66080     {
66081       return !operator==( rhs );
66082     }
66083 #endif
66084 
66085 
66086 
66087   public:
66088     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
66089     void* pNext = {};
66090     uint32_t physicalDeviceCount = {};
66091     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> physicalDevices = {};
66092     VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {};
66093 
66094   };
66095   static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" );
66096   static_assert( std::is_standard_layout<PhysicalDeviceGroupProperties>::value, "struct wrapper is not a standard layout!" );
66097 
66098   template <>
66099   struct CppType<StructureType, StructureType::ePhysicalDeviceGroupProperties>
66100   {
66101     using Type = PhysicalDeviceGroupProperties;
66102   };
66103   using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
66104 
66105   struct PhysicalDeviceHostQueryResetFeatures
66106   {
66107     static const bool allowDuplicate = false;
66108     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
66109 
66110 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66111     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures(VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}) VULKAN_HPP_NOEXCEPT
66112     : hostQueryReset( hostQueryReset_ )
66113     {}
66114 
66115     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66116 
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66117     PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66118       : PhysicalDeviceHostQueryResetFeatures( *reinterpret_cast<PhysicalDeviceHostQueryResetFeatures const *>( &rhs ) )
66119     {}
66120 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66121 
66122     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66123 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66124     PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66125     {
66126       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const *>( &rhs );
66127       return *this;
66128     }
66129 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66130     PhysicalDeviceHostQueryResetFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66131     {
66132       pNext = pNext_;
66133       return *this;
66134     }
66135 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66136     PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
66137     {
66138       hostQueryReset = hostQueryReset_;
66139       return *this;
66140     }
66141 
66142 
operator VkPhysicalDeviceHostQueryResetFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66143     operator VkPhysicalDeviceHostQueryResetFeatures const&() const VULKAN_HPP_NOEXCEPT
66144     {
66145       return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>( this );
66146     }
66147 
operator VkPhysicalDeviceHostQueryResetFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66148     operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
66149     {
66150       return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>( this );
66151     }
66152 
66153 
66154 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66155     auto operator<=>( PhysicalDeviceHostQueryResetFeatures const& ) const = default;
66156 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66157     bool operator==( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66158     {
66159       return ( sType == rhs.sType )
66160           && ( pNext == rhs.pNext )
66161           && ( hostQueryReset == rhs.hostQueryReset );
66162     }
66163 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures66164     bool operator!=( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66165     {
66166       return !operator==( rhs );
66167     }
66168 #endif
66169 
66170 
66171 
66172   public:
66173     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
66174     void* pNext = {};
66175     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
66176 
66177   };
66178   static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), "struct and wrapper have different size!" );
66179   static_assert( std::is_standard_layout<PhysicalDeviceHostQueryResetFeatures>::value, "struct wrapper is not a standard layout!" );
66180 
66181   template <>
66182   struct CppType<StructureType, StructureType::ePhysicalDeviceHostQueryResetFeatures>
66183   {
66184     using Type = PhysicalDeviceHostQueryResetFeatures;
66185   };
66186   using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
66187 
66188   struct PhysicalDeviceIDProperties
66189   {
66190     static const bool allowDuplicate = false;
66191     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties;
66192 
66193 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties66194     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
66195     : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ )
66196     {}
66197 
66198     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66199 
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties66200     PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66201       : PhysicalDeviceIDProperties( *reinterpret_cast<PhysicalDeviceIDProperties const *>( &rhs ) )
66202     {}
66203 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66204 
66205     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66206 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties66207     PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66208     {
66209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const *>( &rhs );
66210       return *this;
66211     }
66212 
66213 
operator VkPhysicalDeviceIDProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties66214     operator VkPhysicalDeviceIDProperties const&() const VULKAN_HPP_NOEXCEPT
66215     {
66216       return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>( this );
66217     }
66218 
operator VkPhysicalDeviceIDProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties66219     operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
66220     {
66221       return *reinterpret_cast<VkPhysicalDeviceIDProperties*>( this );
66222     }
66223 
66224 
66225 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66226     auto operator<=>( PhysicalDeviceIDProperties const& ) const = default;
66227 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties66228     bool operator==( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66229     {
66230       return ( sType == rhs.sType )
66231           && ( pNext == rhs.pNext )
66232           && ( deviceUUID == rhs.deviceUUID )
66233           && ( driverUUID == rhs.driverUUID )
66234           && ( deviceLUID == rhs.deviceLUID )
66235           && ( deviceNodeMask == rhs.deviceNodeMask )
66236           && ( deviceLUIDValid == rhs.deviceLUIDValid );
66237     }
66238 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties66239     bool operator!=( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66240     {
66241       return !operator==( rhs );
66242     }
66243 #endif
66244 
66245 
66246 
66247   public:
66248     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
66249     void* pNext = {};
66250     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
66251     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
66252     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
66253     uint32_t deviceNodeMask = {};
66254     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
66255 
66256   };
66257   static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" );
66258   static_assert( std::is_standard_layout<PhysicalDeviceIDProperties>::value, "struct wrapper is not a standard layout!" );
66259 
66260   template <>
66261   struct CppType<StructureType, StructureType::ePhysicalDeviceIdProperties>
66262   {
66263     using Type = PhysicalDeviceIDProperties;
66264   };
66265   using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
66266 
66267   struct PhysicalDeviceImageDrmFormatModifierInfoEXT
66268   {
66269     static const bool allowDuplicate = false;
66270     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
66271 
66272 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66273     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
66274     : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
66275     {}
66276 
66277     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66278 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66279     PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66280       : PhysicalDeviceImageDrmFormatModifierInfoEXT( *reinterpret_cast<PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs ) )
66281     {}
66282 
66283 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66284     PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ )
66285     : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
66286     {}
66287 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
66288 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66289 
66290     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66291 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66292     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66293     {
66294       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs );
66295       return *this;
66296     }
66297 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66298     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
66299     {
66300       pNext = pNext_;
66301       return *this;
66302     }
66303 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66304     PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
66305     {
66306       drmFormatModifier = drmFormatModifier_;
66307       return *this;
66308     }
66309 
setSharingModeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66310     PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
66311     {
66312       sharingMode = sharingMode_;
66313       return *this;
66314     }
66315 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66316     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
66317     {
66318       queueFamilyIndexCount = queueFamilyIndexCount_;
66319       return *this;
66320     }
66321 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66322     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
66323     {
66324       pQueueFamilyIndices = pQueueFamilyIndices_;
66325       return *this;
66326     }
66327 
66328 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66329     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
66330     {
66331       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
66332       pQueueFamilyIndices = queueFamilyIndices_.data();
66333       return *this;
66334     }
66335 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
66336 
66337 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66338     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const VULKAN_HPP_NOEXCEPT
66339     {
66340       return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
66341     }
66342 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66343     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
66344     {
66345       return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
66346     }
66347 
66348 
66349 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66350     auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const& ) const = default;
66351 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66352     bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66353     {
66354       return ( sType == rhs.sType )
66355           && ( pNext == rhs.pNext )
66356           && ( drmFormatModifier == rhs.drmFormatModifier )
66357           && ( sharingMode == rhs.sharingMode )
66358           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
66359           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
66360     }
66361 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT66362     bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66363     {
66364       return !operator==( rhs );
66365     }
66366 #endif
66367 
66368 
66369 
66370   public:
66371     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
66372     const void* pNext = {};
66373     uint64_t drmFormatModifier = {};
66374     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
66375     uint32_t queueFamilyIndexCount = {};
66376     const uint32_t* pQueueFamilyIndices = {};
66377 
66378   };
66379   static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" );
66380   static_assert( std::is_standard_layout<PhysicalDeviceImageDrmFormatModifierInfoEXT>::value, "struct wrapper is not a standard layout!" );
66381 
66382   template <>
66383   struct CppType<StructureType, StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT>
66384   {
66385     using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT;
66386   };
66387 
66388   struct PhysicalDeviceImageRobustnessFeaturesEXT
66389   {
66390     static const bool allowDuplicate = false;
66391     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT;
66392 
66393 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66394     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {}) VULKAN_HPP_NOEXCEPT
66395     : robustImageAccess( robustImageAccess_ )
66396     {}
66397 
66398     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66399 
PhysicalDeviceImageRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66400     PhysicalDeviceImageRobustnessFeaturesEXT( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66401       : PhysicalDeviceImageRobustnessFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageRobustnessFeaturesEXT const *>( &rhs ) )
66402     {}
66403 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66404 
66405     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeaturesEXT & operator=( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66406 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66407     PhysicalDeviceImageRobustnessFeaturesEXT & operator=( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66408     {
66409       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT const *>( &rhs );
66410       return *this;
66411     }
66412 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66413     PhysicalDeviceImageRobustnessFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66414     {
66415       pNext = pNext_;
66416       return *this;
66417     }
66418 
setRobustImageAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66419     PhysicalDeviceImageRobustnessFeaturesEXT & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
66420     {
66421       robustImageAccess = robustImageAccess_;
66422       return *this;
66423     }
66424 
66425 
operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66426     operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66427     {
66428       return *reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeaturesEXT*>( this );
66429     }
66430 
operator VkPhysicalDeviceImageRobustnessFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66431     operator VkPhysicalDeviceImageRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66432     {
66433       return *reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>( this );
66434     }
66435 
66436 
66437 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66438     auto operator<=>( PhysicalDeviceImageRobustnessFeaturesEXT const& ) const = default;
66439 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66440     bool operator==( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66441     {
66442       return ( sType == rhs.sType )
66443           && ( pNext == rhs.pNext )
66444           && ( robustImageAccess == rhs.robustImageAccess );
66445     }
66446 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66447     bool operator!=( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66448     {
66449       return !operator==( rhs );
66450     }
66451 #endif
66452 
66453 
66454 
66455   public:
66456     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT;
66457     void* pNext = {};
66458     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
66459 
66460   };
66461   static_assert( sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) == sizeof( VkPhysicalDeviceImageRobustnessFeaturesEXT ), "struct and wrapper have different size!" );
66462   static_assert( std::is_standard_layout<PhysicalDeviceImageRobustnessFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66463 
66464   template <>
66465   struct CppType<StructureType, StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT>
66466   {
66467     using Type = PhysicalDeviceImageRobustnessFeaturesEXT;
66468   };
66469 
66470   struct PhysicalDeviceImageViewImageFormatInfoEXT
66471   {
66472     static const bool allowDuplicate = false;
66473     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
66474 
66475 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66476     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT(VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D) VULKAN_HPP_NOEXCEPT
66477     : imageViewType( imageViewType_ )
66478     {}
66479 
66480     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66481 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66482     PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66483       : PhysicalDeviceImageViewImageFormatInfoEXT( *reinterpret_cast<PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs ) )
66484     {}
66485 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66486 
66487     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66488 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66489     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66490     {
66491       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs );
66492       return *this;
66493     }
66494 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66495     PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66496     {
66497       pNext = pNext_;
66498       return *this;
66499     }
66500 
setImageViewTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66501     PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
66502     {
66503       imageViewType = imageViewType_;
66504       return *this;
66505     }
66506 
66507 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66508     operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const VULKAN_HPP_NOEXCEPT
66509     {
66510       return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
66511     }
66512 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66513     operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
66514     {
66515       return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
66516     }
66517 
66518 
66519 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66520     auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const& ) const = default;
66521 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66522     bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66523     {
66524       return ( sType == rhs.sType )
66525           && ( pNext == rhs.pNext )
66526           && ( imageViewType == rhs.imageViewType );
66527     }
66528 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66529     bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66530     {
66531       return !operator==( rhs );
66532     }
66533 #endif
66534 
66535 
66536 
66537   public:
66538     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
66539     void* pNext = {};
66540     VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
66541 
66542   };
66543   static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" );
66544   static_assert( std::is_standard_layout<PhysicalDeviceImageViewImageFormatInfoEXT>::value, "struct wrapper is not a standard layout!" );
66545 
66546   template <>
66547   struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT>
66548   {
66549     using Type = PhysicalDeviceImageViewImageFormatInfoEXT;
66550   };
66551 
66552   struct PhysicalDeviceImagelessFramebufferFeatures
66553   {
66554     static const bool allowDuplicate = false;
66555     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
66556 
66557 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66558     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures(VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}) VULKAN_HPP_NOEXCEPT
66559     : imagelessFramebuffer( imagelessFramebuffer_ )
66560     {}
66561 
66562     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66563 
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66564     PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66565       : PhysicalDeviceImagelessFramebufferFeatures( *reinterpret_cast<PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs ) )
66566     {}
66567 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66568 
66569     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66570 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66571     PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66572     {
66573       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs );
66574       return *this;
66575     }
66576 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66577     PhysicalDeviceImagelessFramebufferFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66578     {
66579       pNext = pNext_;
66580       return *this;
66581     }
66582 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66583     PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
66584     {
66585       imagelessFramebuffer = imagelessFramebuffer_;
66586       return *this;
66587     }
66588 
66589 
operator VkPhysicalDeviceImagelessFramebufferFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66590     operator VkPhysicalDeviceImagelessFramebufferFeatures const&() const VULKAN_HPP_NOEXCEPT
66591     {
66592       return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
66593     }
66594 
operator VkPhysicalDeviceImagelessFramebufferFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66595     operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
66596     {
66597       return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
66598     }
66599 
66600 
66601 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66602     auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const& ) const = default;
66603 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66604     bool operator==( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66605     {
66606       return ( sType == rhs.sType )
66607           && ( pNext == rhs.pNext )
66608           && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
66609     }
66610 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66611     bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66612     {
66613       return !operator==( rhs );
66614     }
66615 #endif
66616 
66617 
66618 
66619   public:
66620     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
66621     void* pNext = {};
66622     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
66623 
66624   };
66625   static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), "struct and wrapper have different size!" );
66626   static_assert( std::is_standard_layout<PhysicalDeviceImagelessFramebufferFeatures>::value, "struct wrapper is not a standard layout!" );
66627 
66628   template <>
66629   struct CppType<StructureType, StructureType::ePhysicalDeviceImagelessFramebufferFeatures>
66630   {
66631     using Type = PhysicalDeviceImagelessFramebufferFeatures;
66632   };
66633   using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
66634 
66635   struct PhysicalDeviceIndexTypeUint8FeaturesEXT
66636   {
66637     static const bool allowDuplicate = false;
66638     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
66639 
66640 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66641     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {}) VULKAN_HPP_NOEXCEPT
66642     : indexTypeUint8( indexTypeUint8_ )
66643     {}
66644 
66645     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66646 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66647     PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66648       : PhysicalDeviceIndexTypeUint8FeaturesEXT( *reinterpret_cast<PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs ) )
66649     {}
66650 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66651 
66652     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66653 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66654     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66655     {
66656       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs );
66657       return *this;
66658     }
66659 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66660     PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66661     {
66662       pNext = pNext_;
66663       return *this;
66664     }
66665 
setIndexTypeUint8VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66666     PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT
66667     {
66668       indexTypeUint8 = indexTypeUint8_;
66669       return *this;
66670     }
66671 
66672 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66673     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66674     {
66675       return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
66676     }
66677 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66678     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
66679     {
66680       return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
66681     }
66682 
66683 
66684 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66685     auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const& ) const = default;
66686 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66687     bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66688     {
66689       return ( sType == rhs.sType )
66690           && ( pNext == rhs.pNext )
66691           && ( indexTypeUint8 == rhs.indexTypeUint8 );
66692     }
66693 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66694     bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66695     {
66696       return !operator==( rhs );
66697     }
66698 #endif
66699 
66700 
66701 
66702   public:
66703     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
66704     void* pNext = {};
66705     VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {};
66706 
66707   };
66708   static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" );
66709   static_assert( std::is_standard_layout<PhysicalDeviceIndexTypeUint8FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66710 
66711   template <>
66712   struct CppType<StructureType, StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT>
66713   {
66714     using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT;
66715   };
66716 
66717   struct PhysicalDeviceInlineUniformBlockFeaturesEXT
66718   {
66719     static const bool allowDuplicate = false;
66720     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
66721 
66722 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66723     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT
66724     : inlineUniformBlock( inlineUniformBlock_ ), descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
66725     {}
66726 
66727     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66728 
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66729     PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66730       : PhysicalDeviceInlineUniformBlockFeaturesEXT( *reinterpret_cast<PhysicalDeviceInlineUniformBlockFeaturesEXT const *>( &rhs ) )
66731     {}
66732 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66733 
66734     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66735 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66736     PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66737     {
66738       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT const *>( &rhs );
66739       return *this;
66740     }
66741 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66742     PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66743     {
66744       pNext = pNext_;
66745       return *this;
66746     }
66747 
setInlineUniformBlockVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66748     PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
66749     {
66750       inlineUniformBlock = inlineUniformBlock_;
66751       return *this;
66752     }
66753 
setDescriptorBindingInlineUniformBlockUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66754     PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
66755     {
66756       descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
66757       return *this;
66758     }
66759 
66760 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66761     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66762     {
66763       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
66764     }
66765 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66766     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66767     {
66768       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
66769     }
66770 
66771 
66772 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66773     auto operator<=>( PhysicalDeviceInlineUniformBlockFeaturesEXT const& ) const = default;
66774 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66775     bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66776     {
66777       return ( sType == rhs.sType )
66778           && ( pNext == rhs.pNext )
66779           && ( inlineUniformBlock == rhs.inlineUniformBlock )
66780           && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
66781     }
66782 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66783     bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66784     {
66785       return !operator==( rhs );
66786     }
66787 #endif
66788 
66789 
66790 
66791   public:
66792     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
66793     void* pNext = {};
66794     VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
66795     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
66796 
66797   };
66798   static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" );
66799   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66800 
66801   template <>
66802   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT>
66803   {
66804     using Type = PhysicalDeviceInlineUniformBlockFeaturesEXT;
66805   };
66806 
66807   struct PhysicalDeviceInlineUniformBlockPropertiesEXT
66808   {
66809     static const bool allowDuplicate = false;
66810     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
66811 
66812 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66813     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT(uint32_t maxInlineUniformBlockSize_ = {}, uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {}) VULKAN_HPP_NOEXCEPT
66814     : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ), maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ), maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ), maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ), maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
66815     {}
66816 
66817     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66818 
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66819     PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66820       : PhysicalDeviceInlineUniformBlockPropertiesEXT( *reinterpret_cast<PhysicalDeviceInlineUniformBlockPropertiesEXT const *>( &rhs ) )
66821     {}
66822 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66823 
66824     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66825 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66826     PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66827     {
66828       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT const *>( &rhs );
66829       return *this;
66830     }
66831 
66832 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66833     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
66834     {
66835       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
66836     }
66837 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66838     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66839     {
66840       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
66841     }
66842 
66843 
66844 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66845     auto operator<=>( PhysicalDeviceInlineUniformBlockPropertiesEXT const& ) const = default;
66846 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66847     bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66848     {
66849       return ( sType == rhs.sType )
66850           && ( pNext == rhs.pNext )
66851           && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
66852           && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
66853           && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
66854           && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
66855           && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
66856     }
66857 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66858     bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66859     {
66860       return !operator==( rhs );
66861     }
66862 #endif
66863 
66864 
66865 
66866   public:
66867     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
66868     void* pNext = {};
66869     uint32_t maxInlineUniformBlockSize = {};
66870     uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
66871     uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
66872     uint32_t maxDescriptorSetInlineUniformBlocks = {};
66873     uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
66874 
66875   };
66876   static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" );
66877   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
66878 
66879   template <>
66880   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT>
66881   {
66882     using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT;
66883   };
66884 
66885   struct PhysicalDeviceLineRasterizationFeaturesEXT
66886   {
66887     static const bool allowDuplicate = false;
66888     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
66889 
66890 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66891     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
66892     : rectangularLines( rectangularLines_ ), bresenhamLines( bresenhamLines_ ), smoothLines( smoothLines_ ), stippledRectangularLines( stippledRectangularLines_ ), stippledBresenhamLines( stippledBresenhamLines_ ), stippledSmoothLines( stippledSmoothLines_ )
66893     {}
66894 
66895     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66896 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66897     PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66898       : PhysicalDeviceLineRasterizationFeaturesEXT( *reinterpret_cast<PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs ) )
66899     {}
66900 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66901 
66902     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66903 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66904     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66905     {
66906       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs );
66907       return *this;
66908     }
66909 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66910     PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66911     {
66912       pNext = pNext_;
66913       return *this;
66914     }
66915 
setRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66916     PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
66917     {
66918       rectangularLines = rectangularLines_;
66919       return *this;
66920     }
66921 
setBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66922     PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT
66923     {
66924       bresenhamLines = bresenhamLines_;
66925       return *this;
66926     }
66927 
setSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66928     PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT
66929     {
66930       smoothLines = smoothLines_;
66931       return *this;
66932     }
66933 
setStippledRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66934     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
66935     {
66936       stippledRectangularLines = stippledRectangularLines_;
66937       return *this;
66938     }
66939 
setStippledBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66940     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
66941     {
66942       stippledBresenhamLines = stippledBresenhamLines_;
66943       return *this;
66944     }
66945 
setStippledSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66946     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
66947     {
66948       stippledSmoothLines = stippledSmoothLines_;
66949       return *this;
66950     }
66951 
66952 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66953     operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66954     {
66955       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
66956     }
66957 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66958     operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66959     {
66960       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
66961     }
66962 
66963 
66964 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66965     auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const& ) const = default;
66966 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66967     bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66968     {
66969       return ( sType == rhs.sType )
66970           && ( pNext == rhs.pNext )
66971           && ( rectangularLines == rhs.rectangularLines )
66972           && ( bresenhamLines == rhs.bresenhamLines )
66973           && ( smoothLines == rhs.smoothLines )
66974           && ( stippledRectangularLines == rhs.stippledRectangularLines )
66975           && ( stippledBresenhamLines == rhs.stippledBresenhamLines )
66976           && ( stippledSmoothLines == rhs.stippledSmoothLines );
66977     }
66978 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66979     bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66980     {
66981       return !operator==( rhs );
66982     }
66983 #endif
66984 
66985 
66986 
66987   public:
66988     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
66989     void* pNext = {};
66990     VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {};
66991     VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {};
66992     VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {};
66993     VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {};
66994     VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {};
66995     VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {};
66996 
66997   };
66998   static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" );
66999   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
67000 
67001   template <>
67002   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT>
67003   {
67004     using Type = PhysicalDeviceLineRasterizationFeaturesEXT;
67005   };
67006 
67007   struct PhysicalDeviceLineRasterizationPropertiesEXT
67008   {
67009     static const bool allowDuplicate = false;
67010     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
67011 
67012 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT67013     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT(uint32_t lineSubPixelPrecisionBits_ = {}) VULKAN_HPP_NOEXCEPT
67014     : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
67015     {}
67016 
67017     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67018 
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT67019     PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67020       : PhysicalDeviceLineRasterizationPropertiesEXT( *reinterpret_cast<PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs ) )
67021     {}
67022 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67023 
67024     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67025 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT67026     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67027     {
67028       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs );
67029       return *this;
67030     }
67031 
67032 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT67033     operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
67034     {
67035       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
67036     }
67037 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT67038     operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
67039     {
67040       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
67041     }
67042 
67043 
67044 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67045     auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const& ) const = default;
67046 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT67047     bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67048     {
67049       return ( sType == rhs.sType )
67050           && ( pNext == rhs.pNext )
67051           && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
67052     }
67053 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT67054     bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67055     {
67056       return !operator==( rhs );
67057     }
67058 #endif
67059 
67060 
67061 
67062   public:
67063     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
67064     void* pNext = {};
67065     uint32_t lineSubPixelPrecisionBits = {};
67066 
67067   };
67068   static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
67069   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
67070 
67071   template <>
67072   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT>
67073   {
67074     using Type = PhysicalDeviceLineRasterizationPropertiesEXT;
67075   };
67076 
67077   struct PhysicalDeviceMaintenance3Properties
67078   {
67079     static const bool allowDuplicate = false;
67080     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties;
67081 
67082 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties67083     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties(uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT
67084     : maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ )
67085     {}
67086 
67087     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67088 
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties67089     PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
67090       : PhysicalDeviceMaintenance3Properties( *reinterpret_cast<PhysicalDeviceMaintenance3Properties const *>( &rhs ) )
67091     {}
67092 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67093 
67094     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67095 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties67096     PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
67097     {
67098       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const *>( &rhs );
67099       return *this;
67100     }
67101 
67102 
operator VkPhysicalDeviceMaintenance3Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties67103     operator VkPhysicalDeviceMaintenance3Properties const&() const VULKAN_HPP_NOEXCEPT
67104     {
67105       return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>( this );
67106     }
67107 
operator VkPhysicalDeviceMaintenance3Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties67108     operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
67109     {
67110       return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>( this );
67111     }
67112 
67113 
67114 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67115     auto operator<=>( PhysicalDeviceMaintenance3Properties const& ) const = default;
67116 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties67117     bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
67118     {
67119       return ( sType == rhs.sType )
67120           && ( pNext == rhs.pNext )
67121           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
67122           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
67123     }
67124 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties67125     bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
67126     {
67127       return !operator==( rhs );
67128     }
67129 #endif
67130 
67131 
67132 
67133   public:
67134     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
67135     void* pNext = {};
67136     uint32_t maxPerSetDescriptors = {};
67137     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
67138 
67139   };
67140   static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" );
67141   static_assert( std::is_standard_layout<PhysicalDeviceMaintenance3Properties>::value, "struct wrapper is not a standard layout!" );
67142 
67143   template <>
67144   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance3Properties>
67145   {
67146     using Type = PhysicalDeviceMaintenance3Properties;
67147   };
67148   using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
67149 
67150   struct PhysicalDeviceMemoryBudgetPropertiesEXT
67151   {
67152     static const bool allowDuplicate = false;
67153     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
67154 
67155 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT67156     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
67157     : heapBudget( heapBudget_ ), heapUsage( heapUsage_ )
67158     {}
67159 
67160     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67161 
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT67162     PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67163       : PhysicalDeviceMemoryBudgetPropertiesEXT( *reinterpret_cast<PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs ) )
67164     {}
67165 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67166 
67167     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67168 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT67169     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67170     {
67171       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs );
67172       return *this;
67173     }
67174 
67175 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT67176     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
67177     {
67178       return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
67179     }
67180 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT67181     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
67182     {
67183       return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
67184     }
67185 
67186 
67187 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67188     auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const& ) const = default;
67189 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT67190     bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67191     {
67192       return ( sType == rhs.sType )
67193           && ( pNext == rhs.pNext )
67194           && ( heapBudget == rhs.heapBudget )
67195           && ( heapUsage == rhs.heapUsage );
67196     }
67197 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT67198     bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67199     {
67200       return !operator==( rhs );
67201     }
67202 #endif
67203 
67204 
67205 
67206   public:
67207     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
67208     void* pNext = {};
67209     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapBudget = {};
67210     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapUsage = {};
67211 
67212   };
67213   static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" );
67214   static_assert( std::is_standard_layout<PhysicalDeviceMemoryBudgetPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
67215 
67216   template <>
67217   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT>
67218   {
67219     using Type = PhysicalDeviceMemoryBudgetPropertiesEXT;
67220   };
67221 
67222   struct PhysicalDeviceMemoryPriorityFeaturesEXT
67223   {
67224     static const bool allowDuplicate = false;
67225     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
67226 
67227 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67228     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {}) VULKAN_HPP_NOEXCEPT
67229     : memoryPriority( memoryPriority_ )
67230     {}
67231 
67232     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67233 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67234     PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67235       : PhysicalDeviceMemoryPriorityFeaturesEXT( *reinterpret_cast<PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs ) )
67236     {}
67237 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67238 
67239     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67240 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67241     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67242     {
67243       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs );
67244       return *this;
67245     }
67246 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67247     PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67248     {
67249       pNext = pNext_;
67250       return *this;
67251     }
67252 
setMemoryPriorityVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67253     PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT
67254     {
67255       memoryPriority = memoryPriority_;
67256       return *this;
67257     }
67258 
67259 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67260     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
67261     {
67262       return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
67263     }
67264 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67265     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
67266     {
67267       return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
67268     }
67269 
67270 
67271 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67272     auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const& ) const = default;
67273 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67274     bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67275     {
67276       return ( sType == rhs.sType )
67277           && ( pNext == rhs.pNext )
67278           && ( memoryPriority == rhs.memoryPriority );
67279     }
67280 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT67281     bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67282     {
67283       return !operator==( rhs );
67284     }
67285 #endif
67286 
67287 
67288 
67289   public:
67290     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
67291     void* pNext = {};
67292     VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {};
67293 
67294   };
67295   static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" );
67296   static_assert( std::is_standard_layout<PhysicalDeviceMemoryPriorityFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
67297 
67298   template <>
67299   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT>
67300   {
67301     using Type = PhysicalDeviceMemoryPriorityFeaturesEXT;
67302   };
67303 
67304   struct PhysicalDeviceMeshShaderFeaturesNV
67305   {
67306     static const bool allowDuplicate = false;
67307     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
67308 
67309 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67310     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {}) VULKAN_HPP_NOEXCEPT
67311     : taskShader( taskShader_ ), meshShader( meshShader_ )
67312     {}
67313 
67314     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67315 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67316     PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67317       : PhysicalDeviceMeshShaderFeaturesNV( *reinterpret_cast<PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs ) )
67318     {}
67319 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67320 
67321     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67322 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67323     PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67324     {
67325       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs );
67326       return *this;
67327     }
67328 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67329     PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67330     {
67331       pNext = pNext_;
67332       return *this;
67333     }
67334 
setTaskShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67335     PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
67336     {
67337       taskShader = taskShader_;
67338       return *this;
67339     }
67340 
setMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67341     PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
67342     {
67343       meshShader = meshShader_;
67344       return *this;
67345     }
67346 
67347 
operator VkPhysicalDeviceMeshShaderFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67348     operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
67349     {
67350       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
67351     }
67352 
operator VkPhysicalDeviceMeshShaderFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67353     operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
67354     {
67355       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
67356     }
67357 
67358 
67359 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67360     auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const& ) const = default;
67361 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67362     bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67363     {
67364       return ( sType == rhs.sType )
67365           && ( pNext == rhs.pNext )
67366           && ( taskShader == rhs.taskShader )
67367           && ( meshShader == rhs.meshShader );
67368     }
67369 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67370     bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67371     {
67372       return !operator==( rhs );
67373     }
67374 #endif
67375 
67376 
67377 
67378   public:
67379     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
67380     void* pNext = {};
67381     VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
67382     VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
67383 
67384   };
67385   static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" );
67386   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderFeaturesNV>::value, "struct wrapper is not a standard layout!" );
67387 
67388   template <>
67389   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesNV>
67390   {
67391     using Type = PhysicalDeviceMeshShaderFeaturesNV;
67392   };
67393 
67394   struct PhysicalDeviceMeshShaderPropertiesNV
67395   {
67396     static const bool allowDuplicate = false;
67397     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
67398 
67399 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67400     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
67401     : 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_ )
67402     {}
67403 
67404     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67405 
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67406     PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67407       : PhysicalDeviceMeshShaderPropertiesNV( *reinterpret_cast<PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs ) )
67408     {}
67409 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67410 
67411     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67412 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67413     PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67414     {
67415       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs );
67416       return *this;
67417     }
67418 
67419 
operator VkPhysicalDeviceMeshShaderPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67420     operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
67421     {
67422       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
67423     }
67424 
operator VkPhysicalDeviceMeshShaderPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67425     operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
67426     {
67427       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
67428     }
67429 
67430 
67431 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67432     auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const& ) const = default;
67433 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67434     bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67435     {
67436       return ( sType == rhs.sType )
67437           && ( pNext == rhs.pNext )
67438           && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount )
67439           && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
67440           && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize )
67441           && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize )
67442           && ( maxTaskOutputCount == rhs.maxTaskOutputCount )
67443           && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
67444           && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize )
67445           && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize )
67446           && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
67447           && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
67448           && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
67449           && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
67450           && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
67451     }
67452 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67453     bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67454     {
67455       return !operator==( rhs );
67456     }
67457 #endif
67458 
67459 
67460 
67461   public:
67462     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
67463     void* pNext = {};
67464     uint32_t maxDrawMeshTasksCount = {};
67465     uint32_t maxTaskWorkGroupInvocations = {};
67466     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
67467     uint32_t maxTaskTotalMemorySize = {};
67468     uint32_t maxTaskOutputCount = {};
67469     uint32_t maxMeshWorkGroupInvocations = {};
67470     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
67471     uint32_t maxMeshTotalMemorySize = {};
67472     uint32_t maxMeshOutputVertices = {};
67473     uint32_t maxMeshOutputPrimitives = {};
67474     uint32_t maxMeshMultiviewViewCount = {};
67475     uint32_t meshOutputPerVertexGranularity = {};
67476     uint32_t meshOutputPerPrimitiveGranularity = {};
67477 
67478   };
67479   static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" );
67480   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderPropertiesNV>::value, "struct wrapper is not a standard layout!" );
67481 
67482   template <>
67483   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesNV>
67484   {
67485     using Type = PhysicalDeviceMeshShaderPropertiesNV;
67486   };
67487 
67488   struct PhysicalDeviceMultiviewFeatures
67489   {
67490     static const bool allowDuplicate = false;
67491     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures;
67492 
67493 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67494     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures(VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}) VULKAN_HPP_NOEXCEPT
67495     : multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ )
67496     {}
67497 
67498     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67499 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67500     PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67501       : PhysicalDeviceMultiviewFeatures( *reinterpret_cast<PhysicalDeviceMultiviewFeatures const *>( &rhs ) )
67502     {}
67503 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67504 
67505     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67506 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67507     PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67508     {
67509       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const *>( &rhs );
67510       return *this;
67511     }
67512 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67513     PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67514     {
67515       pNext = pNext_;
67516       return *this;
67517     }
67518 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67519     PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
67520     {
67521       multiview = multiview_;
67522       return *this;
67523     }
67524 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67525     PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
67526     {
67527       multiviewGeometryShader = multiviewGeometryShader_;
67528       return *this;
67529     }
67530 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67531     PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
67532     {
67533       multiviewTessellationShader = multiviewTessellationShader_;
67534       return *this;
67535     }
67536 
67537 
operator VkPhysicalDeviceMultiviewFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67538     operator VkPhysicalDeviceMultiviewFeatures const&() const VULKAN_HPP_NOEXCEPT
67539     {
67540       return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>( this );
67541     }
67542 
operator VkPhysicalDeviceMultiviewFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67543     operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
67544     {
67545       return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>( this );
67546     }
67547 
67548 
67549 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67550     auto operator<=>( PhysicalDeviceMultiviewFeatures const& ) const = default;
67551 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67552     bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
67553     {
67554       return ( sType == rhs.sType )
67555           && ( pNext == rhs.pNext )
67556           && ( multiview == rhs.multiview )
67557           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
67558           && ( multiviewTessellationShader == rhs.multiviewTessellationShader );
67559     }
67560 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67561     bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
67562     {
67563       return !operator==( rhs );
67564     }
67565 #endif
67566 
67567 
67568 
67569   public:
67570     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
67571     void* pNext = {};
67572     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
67573     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
67574     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
67575 
67576   };
67577   static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" );
67578   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewFeatures>::value, "struct wrapper is not a standard layout!" );
67579 
67580   template <>
67581   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewFeatures>
67582   {
67583     using Type = PhysicalDeviceMultiviewFeatures;
67584   };
67585   using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
67586 
67587   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
67588   {
67589     static const bool allowDuplicate = false;
67590     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67591 
67592 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67593     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {}) VULKAN_HPP_NOEXCEPT
67594     : perViewPositionAllComponents( perViewPositionAllComponents_ )
67595     {}
67596 
67597     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67598 
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67599     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
67600       : PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( *reinterpret_cast<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs ) )
67601     {}
67602 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67603 
67604     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67605 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67606     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
67607     {
67608       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs );
67609       return *this;
67610     }
67611 
67612 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67613     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
67614     {
67615       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
67616     }
67617 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67618     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
67619     {
67620       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
67621     }
67622 
67623 
67624 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67625     auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& ) const = default;
67626 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67627     bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
67628     {
67629       return ( sType == rhs.sType )
67630           && ( pNext == rhs.pNext )
67631           && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
67632     }
67633 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67634     bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
67635     {
67636       return !operator==( rhs );
67637     }
67638 #endif
67639 
67640 
67641 
67642   public:
67643     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67644     void* pNext = {};
67645     VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {};
67646 
67647   };
67648   static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" );
67649   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
67650 
67651   template <>
67652   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
67653   {
67654     using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67655   };
67656 
67657   struct PhysicalDeviceMultiviewProperties
67658   {
67659     static const bool allowDuplicate = false;
67660     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties;
67661 
67662 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67663     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties(uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}) VULKAN_HPP_NOEXCEPT
67664     : maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
67665     {}
67666 
67667     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67668 
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67669     PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67670       : PhysicalDeviceMultiviewProperties( *reinterpret_cast<PhysicalDeviceMultiviewProperties const *>( &rhs ) )
67671     {}
67672 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67673 
67674     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67675 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67676     PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67677     {
67678       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const *>( &rhs );
67679       return *this;
67680     }
67681 
67682 
operator VkPhysicalDeviceMultiviewProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67683     operator VkPhysicalDeviceMultiviewProperties const&() const VULKAN_HPP_NOEXCEPT
67684     {
67685       return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>( this );
67686     }
67687 
operator VkPhysicalDeviceMultiviewProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67688     operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
67689     {
67690       return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>( this );
67691     }
67692 
67693 
67694 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67695     auto operator<=>( PhysicalDeviceMultiviewProperties const& ) const = default;
67696 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67697     bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67698     {
67699       return ( sType == rhs.sType )
67700           && ( pNext == rhs.pNext )
67701           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
67702           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
67703     }
67704 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67705     bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67706     {
67707       return !operator==( rhs );
67708     }
67709 #endif
67710 
67711 
67712 
67713   public:
67714     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
67715     void* pNext = {};
67716     uint32_t maxMultiviewViewCount = {};
67717     uint32_t maxMultiviewInstanceIndex = {};
67718 
67719   };
67720   static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" );
67721   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewProperties>::value, "struct wrapper is not a standard layout!" );
67722 
67723   template <>
67724   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewProperties>
67725   {
67726     using Type = PhysicalDeviceMultiviewProperties;
67727   };
67728   using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
67729 
67730   struct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE
67731   {
67732     static const bool allowDuplicate = false;
67733     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
67734 
67735 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMutableDescriptorTypeFeaturesVALVEVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67736     VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE(VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ = {}) VULKAN_HPP_NOEXCEPT
67737     : mutableDescriptorType( mutableDescriptorType_ )
67738     {}
67739 
67740     VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67741 
PhysicalDeviceMutableDescriptorTypeFeaturesVALVEVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67742     PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
67743       : PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( *reinterpret_cast<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const *>( &rhs ) )
67744     {}
67745 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67746 
67747     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & operator=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67748 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67749     PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & operator=( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
67750     {
67751       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const *>( &rhs );
67752       return *this;
67753     }
67754 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67755     PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67756     {
67757       pNext = pNext_;
67758       return *this;
67759     }
67760 
setMutableDescriptorTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67761     PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT
67762     {
67763       mutableDescriptorType = mutableDescriptorType_;
67764       return *this;
67765     }
67766 
67767 
operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67768     operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const&() const VULKAN_HPP_NOEXCEPT
67769     {
67770       return *reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>( this );
67771     }
67772 
operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67773     operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE &() VULKAN_HPP_NOEXCEPT
67774     {
67775       return *reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>( this );
67776     }
67777 
67778 
67779 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67780     auto operator<=>( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& ) const = default;
67781 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67782     bool operator==( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT
67783     {
67784       return ( sType == rhs.sType )
67785           && ( pNext == rhs.pNext )
67786           && ( mutableDescriptorType == rhs.mutableDescriptorType );
67787     }
67788 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE67789     bool operator!=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT
67790     {
67791       return !operator==( rhs );
67792     }
67793 #endif
67794 
67795 
67796 
67797   public:
67798     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
67799     void* pNext = {};
67800     VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType = {};
67801 
67802   };
67803   static_assert( sizeof( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE ) == sizeof( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE ), "struct and wrapper have different size!" );
67804   static_assert( std::is_standard_layout<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE>::value, "struct wrapper is not a standard layout!" );
67805 
67806   template <>
67807   struct CppType<StructureType, StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE>
67808   {
67809     using Type = PhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
67810   };
67811 
67812   struct PhysicalDevicePCIBusInfoPropertiesEXT
67813   {
67814     static const bool allowDuplicate = false;
67815     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
67816 
67817 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67818     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}) VULKAN_HPP_NOEXCEPT
67819     : pciDomain( pciDomain_ ), pciBus( pciBus_ ), pciDevice( pciDevice_ ), pciFunction( pciFunction_ )
67820     {}
67821 
67822     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67823 
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67824     PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67825       : PhysicalDevicePCIBusInfoPropertiesEXT( *reinterpret_cast<PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs ) )
67826     {}
67827 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67828 
67829     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67830 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67831     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67832     {
67833       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs );
67834       return *this;
67835     }
67836 
67837 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67838     operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
67839     {
67840       return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
67841     }
67842 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67843     operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
67844     {
67845       return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
67846     }
67847 
67848 
67849 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67850     auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const& ) const = default;
67851 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67852     bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67853     {
67854       return ( sType == rhs.sType )
67855           && ( pNext == rhs.pNext )
67856           && ( pciDomain == rhs.pciDomain )
67857           && ( pciBus == rhs.pciBus )
67858           && ( pciDevice == rhs.pciDevice )
67859           && ( pciFunction == rhs.pciFunction );
67860     }
67861 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67862     bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67863     {
67864       return !operator==( rhs );
67865     }
67866 #endif
67867 
67868 
67869 
67870   public:
67871     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
67872     void* pNext = {};
67873     uint32_t pciDomain = {};
67874     uint32_t pciBus = {};
67875     uint32_t pciDevice = {};
67876     uint32_t pciFunction = {};
67877 
67878   };
67879   static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" );
67880   static_assert( std::is_standard_layout<PhysicalDevicePCIBusInfoPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
67881 
67882   template <>
67883   struct CppType<StructureType, StructureType::ePhysicalDevicePciBusInfoPropertiesEXT>
67884   {
67885     using Type = PhysicalDevicePCIBusInfoPropertiesEXT;
67886   };
67887 
67888   struct PhysicalDevicePerformanceQueryFeaturesKHR
67889   {
67890     static const bool allowDuplicate = false;
67891     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
67892 
67893 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67894     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {}) VULKAN_HPP_NOEXCEPT
67895     : performanceCounterQueryPools( performanceCounterQueryPools_ ), performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
67896     {}
67897 
67898     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67899 
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67900     PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67901       : PhysicalDevicePerformanceQueryFeaturesKHR( *reinterpret_cast<PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs ) )
67902     {}
67903 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67904 
67905     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67906 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67907     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67908     {
67909       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs );
67910       return *this;
67911     }
67912 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67913     PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67914     {
67915       pNext = pNext_;
67916       return *this;
67917     }
67918 
setPerformanceCounterQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67919     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
67920     {
67921       performanceCounterQueryPools = performanceCounterQueryPools_;
67922       return *this;
67923     }
67924 
setPerformanceCounterMultipleQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67925     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
67926     {
67927       performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
67928       return *this;
67929     }
67930 
67931 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67932     operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
67933     {
67934       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
67935     }
67936 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67937     operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
67938     {
67939       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
67940     }
67941 
67942 
67943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67944     auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const& ) const = default;
67945 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67946     bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67947     {
67948       return ( sType == rhs.sType )
67949           && ( pNext == rhs.pNext )
67950           && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools )
67951           && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools );
67952     }
67953 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67954     bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67955     {
67956       return !operator==( rhs );
67957     }
67958 #endif
67959 
67960 
67961 
67962   public:
67963     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
67964     void* pNext = {};
67965     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {};
67966     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {};
67967 
67968   };
67969   static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), "struct and wrapper have different size!" );
67970   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
67971 
67972   template <>
67973   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR>
67974   {
67975     using Type = PhysicalDevicePerformanceQueryFeaturesKHR;
67976   };
67977 
67978   struct PhysicalDevicePerformanceQueryPropertiesKHR
67979   {
67980     static const bool allowDuplicate = false;
67981     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
67982 
67983 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67984     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {}) VULKAN_HPP_NOEXCEPT
67985     : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
67986     {}
67987 
67988     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67989 
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67990     PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67991       : PhysicalDevicePerformanceQueryPropertiesKHR( *reinterpret_cast<PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs ) )
67992     {}
67993 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67994 
67995     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67996 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67997     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67998     {
67999       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs );
68000       return *this;
68001     }
68002 
68003 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR68004     operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
68005     {
68006       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
68007     }
68008 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR68009     operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
68010     {
68011       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
68012     }
68013 
68014 
68015 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68016     auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const& ) const = default;
68017 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR68018     bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68019     {
68020       return ( sType == rhs.sType )
68021           && ( pNext == rhs.pNext )
68022           && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies );
68023     }
68024 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR68025     bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68026     {
68027       return !operator==( rhs );
68028     }
68029 #endif
68030 
68031 
68032 
68033   public:
68034     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
68035     void* pNext = {};
68036     VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {};
68037 
68038   };
68039   static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), "struct and wrapper have different size!" );
68040   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
68041 
68042   template <>
68043   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR>
68044   {
68045     using Type = PhysicalDevicePerformanceQueryPropertiesKHR;
68046   };
68047 
68048   struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT
68049   {
68050     static const bool allowDuplicate = false;
68051     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
68052 
68053 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68054     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {}) VULKAN_HPP_NOEXCEPT
68055     : pipelineCreationCacheControl( pipelineCreationCacheControl_ )
68056     {}
68057 
68058     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68059 
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68060     PhysicalDevicePipelineCreationCacheControlFeaturesEXT( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68061       : PhysicalDevicePipelineCreationCacheControlFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineCreationCacheControlFeaturesEXT const *>( &rhs ) )
68062     {}
68063 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68064 
68065     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68066 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68067     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68068     {
68069       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT const *>( &rhs );
68070       return *this;
68071     }
68072 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68073     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68074     {
68075       pNext = pNext_;
68076       return *this;
68077     }
68078 
setPipelineCreationCacheControlVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68079     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
68080     {
68081       pipelineCreationCacheControl = pipelineCreationCacheControl_;
68082       return *this;
68083     }
68084 
68085 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68086     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
68087     {
68088       return *reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
68089     }
68090 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68091     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
68092     {
68093       return *reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
68094     }
68095 
68096 
68097 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68098     auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& ) const = default;
68099 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68100     bool operator==( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68101     {
68102       return ( sType == rhs.sType )
68103           && ( pNext == rhs.pNext )
68104           && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl );
68105     }
68106 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT68107     bool operator!=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68108     {
68109       return !operator==( rhs );
68110     }
68111 #endif
68112 
68113 
68114 
68115   public:
68116     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
68117     void* pNext = {};
68118     VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
68119 
68120   };
68121   static_assert( sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) == sizeof( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT ), "struct and wrapper have different size!" );
68122   static_assert( std::is_standard_layout<PhysicalDevicePipelineCreationCacheControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
68123 
68124   template <>
68125   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT>
68126   {
68127     using Type = PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
68128   };
68129 
68130   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
68131   {
68132     static const bool allowDuplicate = false;
68133     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
68134 
68135 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68136     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {}) VULKAN_HPP_NOEXCEPT
68137     : pipelineExecutableInfo( pipelineExecutableInfo_ )
68138     {}
68139 
68140     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68141 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68142     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68143       : PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( *reinterpret_cast<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs ) )
68144     {}
68145 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68146 
68147     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68148 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68149     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68150     {
68151       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs );
68152       return *this;
68153     }
68154 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68155     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68156     {
68157       pNext = pNext_;
68158       return *this;
68159     }
68160 
setPipelineExecutableInfoVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68161     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
68162     {
68163       pipelineExecutableInfo = pipelineExecutableInfo_;
68164       return *this;
68165     }
68166 
68167 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68168     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
68169     {
68170       return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
68171     }
68172 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68173     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
68174     {
68175       return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
68176     }
68177 
68178 
68179 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68180     auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& ) const = default;
68181 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68182     bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68183     {
68184       return ( sType == rhs.sType )
68185           && ( pNext == rhs.pNext )
68186           && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
68187     }
68188 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR68189     bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68190     {
68191       return !operator==( rhs );
68192     }
68193 #endif
68194 
68195 
68196 
68197   public:
68198     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
68199     void* pNext = {};
68200     VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {};
68201 
68202   };
68203   static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" );
68204   static_assert( std::is_standard_layout<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
68205 
68206   template <>
68207   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
68208   {
68209     using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
68210   };
68211 
68212   struct PhysicalDevicePointClippingProperties
68213   {
68214     static const bool allowDuplicate = false;
68215     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties;
68216 
68217 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties68218     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes) VULKAN_HPP_NOEXCEPT
68219     : pointClippingBehavior( pointClippingBehavior_ )
68220     {}
68221 
68222     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68223 
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties68224     PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68225       : PhysicalDevicePointClippingProperties( *reinterpret_cast<PhysicalDevicePointClippingProperties const *>( &rhs ) )
68226     {}
68227 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68228 
68229     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68230 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties68231     PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68232     {
68233       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const *>( &rhs );
68234       return *this;
68235     }
68236 
68237 
operator VkPhysicalDevicePointClippingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties68238     operator VkPhysicalDevicePointClippingProperties const&() const VULKAN_HPP_NOEXCEPT
68239     {
68240       return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>( this );
68241     }
68242 
operator VkPhysicalDevicePointClippingProperties&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties68243     operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
68244     {
68245       return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>( this );
68246     }
68247 
68248 
68249 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68250     auto operator<=>( PhysicalDevicePointClippingProperties const& ) const = default;
68251 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties68252     bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68253     {
68254       return ( sType == rhs.sType )
68255           && ( pNext == rhs.pNext )
68256           && ( pointClippingBehavior == rhs.pointClippingBehavior );
68257     }
68258 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties68259     bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68260     {
68261       return !operator==( rhs );
68262     }
68263 #endif
68264 
68265 
68266 
68267   public:
68268     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
68269     void* pNext = {};
68270     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
68271 
68272   };
68273   static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" );
68274   static_assert( std::is_standard_layout<PhysicalDevicePointClippingProperties>::value, "struct wrapper is not a standard layout!" );
68275 
68276   template <>
68277   struct CppType<StructureType, StructureType::ePhysicalDevicePointClippingProperties>
68278   {
68279     using Type = PhysicalDevicePointClippingProperties;
68280   };
68281   using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
68282 
68283 #ifdef VK_ENABLE_BETA_EXTENSIONS
68284   struct PhysicalDevicePortabilitySubsetFeaturesKHR
68285   {
68286     static const bool allowDuplicate = false;
68287     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
68288 
68289 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68290     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
68291     : 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_ )
68292     {}
68293 
68294     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68295 
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68296     PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68297       : PhysicalDevicePortabilitySubsetFeaturesKHR( *reinterpret_cast<PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs ) )
68298     {}
68299 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68300 
68301     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68302 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68303     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68304     {
68305       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs );
68306       return *this;
68307     }
68308 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68309     PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68310     {
68311       pNext = pNext_;
68312       return *this;
68313     }
68314 
setConstantAlphaColorBlendFactorsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68315     PhysicalDevicePortabilitySubsetFeaturesKHR & setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
68316     {
68317       constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_;
68318       return *this;
68319     }
68320 
setEventsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68321     PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT
68322     {
68323       events = events_;
68324       return *this;
68325     }
68326 
setImageViewFormatReinterpretationVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68327     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
68328     {
68329       imageViewFormatReinterpretation = imageViewFormatReinterpretation_;
68330       return *this;
68331     }
68332 
setImageViewFormatSwizzleVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68333     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
68334     {
68335       imageViewFormatSwizzle = imageViewFormatSwizzle_;
68336       return *this;
68337     }
68338 
setImageView2DOn3DImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68339     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
68340     {
68341       imageView2DOn3DImage = imageView2DOn3DImage_;
68342       return *this;
68343     }
68344 
setMultisampleArrayImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68345     PhysicalDevicePortabilitySubsetFeaturesKHR & setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
68346     {
68347       multisampleArrayImage = multisampleArrayImage_;
68348       return *this;
68349     }
68350 
setMutableComparisonSamplersVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68351     PhysicalDevicePortabilitySubsetFeaturesKHR & setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
68352     {
68353       mutableComparisonSamplers = mutableComparisonSamplers_;
68354       return *this;
68355     }
68356 
setPointPolygonsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68357     PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT
68358     {
68359       pointPolygons = pointPolygons_;
68360       return *this;
68361     }
68362 
setSamplerMipLodBiasVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68363     PhysicalDevicePortabilitySubsetFeaturesKHR & setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
68364     {
68365       samplerMipLodBias = samplerMipLodBias_;
68366       return *this;
68367     }
68368 
setSeparateStencilMaskRefVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68369     PhysicalDevicePortabilitySubsetFeaturesKHR & setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
68370     {
68371       separateStencilMaskRef = separateStencilMaskRef_;
68372       return *this;
68373     }
68374 
setShaderSampleRateInterpolationFunctionsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68375     PhysicalDevicePortabilitySubsetFeaturesKHR & setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT
68376     {
68377       shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_;
68378       return *this;
68379     }
68380 
setTessellationIsolinesVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68381     PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
68382     {
68383       tessellationIsolines = tessellationIsolines_;
68384       return *this;
68385     }
68386 
setTessellationPointModeVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68387     PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
68388     {
68389       tessellationPointMode = tessellationPointMode_;
68390       return *this;
68391     }
68392 
setTriangleFansVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68393     PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT
68394     {
68395       triangleFans = triangleFans_;
68396       return *this;
68397     }
68398 
setVertexAttributeAccessBeyondStrideVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68399     PhysicalDevicePortabilitySubsetFeaturesKHR & setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
68400     {
68401       vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
68402       return *this;
68403     }
68404 
68405 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68406     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
68407     {
68408       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
68409     }
68410 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68411     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
68412     {
68413       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
68414     }
68415 
68416 
68417 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68418     auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const& ) const = default;
68419 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68420     bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68421     {
68422       return ( sType == rhs.sType )
68423           && ( pNext == rhs.pNext )
68424           && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors )
68425           && ( events == rhs.events )
68426           && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation )
68427           && ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle )
68428           && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage )
68429           && ( multisampleArrayImage == rhs.multisampleArrayImage )
68430           && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers )
68431           && ( pointPolygons == rhs.pointPolygons )
68432           && ( samplerMipLodBias == rhs.samplerMipLodBias )
68433           && ( separateStencilMaskRef == rhs.separateStencilMaskRef )
68434           && ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions )
68435           && ( tessellationIsolines == rhs.tessellationIsolines )
68436           && ( tessellationPointMode == rhs.tessellationPointMode )
68437           && ( triangleFans == rhs.triangleFans )
68438           && ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride );
68439     }
68440 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68441     bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68442     {
68443       return !operator==( rhs );
68444     }
68445 #endif
68446 
68447 
68448 
68449   public:
68450     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
68451     void* pNext = {};
68452     VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {};
68453     VULKAN_HPP_NAMESPACE::Bool32 events = {};
68454     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {};
68455     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {};
68456     VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {};
68457     VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {};
68458     VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {};
68459     VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {};
68460     VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {};
68461     VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {};
68462     VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {};
68463     VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {};
68464     VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {};
68465     VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {};
68466     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {};
68467 
68468   };
68469   static_assert( sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetFeaturesKHR ), "struct and wrapper have different size!" );
68470   static_assert( std::is_standard_layout<PhysicalDevicePortabilitySubsetFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
68471 
68472   template <>
68473   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR>
68474   {
68475     using Type = PhysicalDevicePortabilitySubsetFeaturesKHR;
68476   };
68477 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
68478 
68479 #ifdef VK_ENABLE_BETA_EXTENSIONS
68480   struct PhysicalDevicePortabilitySubsetPropertiesKHR
68481   {
68482     static const bool allowDuplicate = false;
68483     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
68484 
68485 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68486     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR(uint32_t minVertexInputBindingStrideAlignment_ = {}) VULKAN_HPP_NOEXCEPT
68487     : minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ )
68488     {}
68489 
68490     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68491 
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68492     PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68493       : PhysicalDevicePortabilitySubsetPropertiesKHR( *reinterpret_cast<PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs ) )
68494     {}
68495 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68496 
68497     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68498 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68499     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68500     {
68501       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs );
68502       return *this;
68503     }
68504 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68505     PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68506     {
68507       pNext = pNext_;
68508       return *this;
68509     }
68510 
setMinVertexInputBindingStrideAlignmentVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68511     PhysicalDevicePortabilitySubsetPropertiesKHR & setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
68512     {
68513       minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
68514       return *this;
68515     }
68516 
68517 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68518     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
68519     {
68520       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
68521     }
68522 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68523     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
68524     {
68525       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
68526     }
68527 
68528 
68529 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68530     auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const& ) const = default;
68531 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68532     bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68533     {
68534       return ( sType == rhs.sType )
68535           && ( pNext == rhs.pNext )
68536           && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment );
68537     }
68538 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68539     bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68540     {
68541       return !operator==( rhs );
68542     }
68543 #endif
68544 
68545 
68546 
68547   public:
68548     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
68549     void* pNext = {};
68550     uint32_t minVertexInputBindingStrideAlignment = {};
68551 
68552   };
68553   static_assert( sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetPropertiesKHR ), "struct and wrapper have different size!" );
68554   static_assert( std::is_standard_layout<PhysicalDevicePortabilitySubsetPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
68555 
68556   template <>
68557   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR>
68558   {
68559     using Type = PhysicalDevicePortabilitySubsetPropertiesKHR;
68560   };
68561 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
68562 
68563   struct PhysicalDevicePrivateDataFeaturesEXT
68564   {
68565     static const bool allowDuplicate = false;
68566     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
68567 
68568 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68569     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}) VULKAN_HPP_NOEXCEPT
68570     : privateData( privateData_ )
68571     {}
68572 
68573     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68574 
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68575     PhysicalDevicePrivateDataFeaturesEXT( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68576       : PhysicalDevicePrivateDataFeaturesEXT( *reinterpret_cast<PhysicalDevicePrivateDataFeaturesEXT const *>( &rhs ) )
68577     {}
68578 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68579 
68580     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeaturesEXT & operator=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68581 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68582     PhysicalDevicePrivateDataFeaturesEXT & operator=( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68583     {
68584       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT const *>( &rhs );
68585       return *this;
68586     }
68587 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68588     PhysicalDevicePrivateDataFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68589     {
68590       pNext = pNext_;
68591       return *this;
68592     }
68593 
setPrivateDataVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68594     PhysicalDevicePrivateDataFeaturesEXT & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
68595     {
68596       privateData = privateData_;
68597       return *this;
68598     }
68599 
68600 
operator VkPhysicalDevicePrivateDataFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68601     operator VkPhysicalDevicePrivateDataFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
68602     {
68603       return *reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
68604     }
68605 
operator VkPhysicalDevicePrivateDataFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68606     operator VkPhysicalDevicePrivateDataFeaturesEXT &() VULKAN_HPP_NOEXCEPT
68607     {
68608       return *reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
68609     }
68610 
68611 
68612 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68613     auto operator<=>( PhysicalDevicePrivateDataFeaturesEXT const& ) const = default;
68614 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68615     bool operator==( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68616     {
68617       return ( sType == rhs.sType )
68618           && ( pNext == rhs.pNext )
68619           && ( privateData == rhs.privateData );
68620     }
68621 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68622     bool operator!=( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68623     {
68624       return !operator==( rhs );
68625     }
68626 #endif
68627 
68628 
68629 
68630   public:
68631     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
68632     void* pNext = {};
68633     VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
68634 
68635   };
68636   static_assert( sizeof( PhysicalDevicePrivateDataFeaturesEXT ) == sizeof( VkPhysicalDevicePrivateDataFeaturesEXT ), "struct and wrapper have different size!" );
68637   static_assert( std::is_standard_layout<PhysicalDevicePrivateDataFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
68638 
68639   template <>
68640   struct CppType<StructureType, StructureType::ePhysicalDevicePrivateDataFeaturesEXT>
68641   {
68642     using Type = PhysicalDevicePrivateDataFeaturesEXT;
68643   };
68644 
68645   struct PhysicalDeviceProtectedMemoryFeatures
68646   {
68647     static const bool allowDuplicate = false;
68648     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
68649 
68650 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68651     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures(VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}) VULKAN_HPP_NOEXCEPT
68652     : protectedMemory( protectedMemory_ )
68653     {}
68654 
68655     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68656 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68657     PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68658       : PhysicalDeviceProtectedMemoryFeatures( *reinterpret_cast<PhysicalDeviceProtectedMemoryFeatures const *>( &rhs ) )
68659     {}
68660 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68661 
68662     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68663 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68664     PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68665     {
68666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const *>( &rhs );
68667       return *this;
68668     }
68669 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68670     PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68671     {
68672       pNext = pNext_;
68673       return *this;
68674     }
68675 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68676     PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
68677     {
68678       protectedMemory = protectedMemory_;
68679       return *this;
68680     }
68681 
68682 
operator VkPhysicalDeviceProtectedMemoryFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68683     operator VkPhysicalDeviceProtectedMemoryFeatures const&() const VULKAN_HPP_NOEXCEPT
68684     {
68685       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>( this );
68686     }
68687 
operator VkPhysicalDeviceProtectedMemoryFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68688     operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
68689     {
68690       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>( this );
68691     }
68692 
68693 
68694 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68695     auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const& ) const = default;
68696 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68697     bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68698     {
68699       return ( sType == rhs.sType )
68700           && ( pNext == rhs.pNext )
68701           && ( protectedMemory == rhs.protectedMemory );
68702     }
68703 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68704     bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68705     {
68706       return !operator==( rhs );
68707     }
68708 #endif
68709 
68710 
68711 
68712   public:
68713     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
68714     void* pNext = {};
68715     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
68716 
68717   };
68718   static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" );
68719   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryFeatures>::value, "struct wrapper is not a standard layout!" );
68720 
68721   template <>
68722   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryFeatures>
68723   {
68724     using Type = PhysicalDeviceProtectedMemoryFeatures;
68725   };
68726 
68727   struct PhysicalDeviceProtectedMemoryProperties
68728   {
68729     static const bool allowDuplicate = false;
68730     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
68731 
68732 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68733     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties(VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}) VULKAN_HPP_NOEXCEPT
68734     : protectedNoFault( protectedNoFault_ )
68735     {}
68736 
68737     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68738 
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68739     PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68740       : PhysicalDeviceProtectedMemoryProperties( *reinterpret_cast<PhysicalDeviceProtectedMemoryProperties const *>( &rhs ) )
68741     {}
68742 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68743 
68744     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68745 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68746     PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68747     {
68748       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const *>( &rhs );
68749       return *this;
68750     }
68751 
68752 
operator VkPhysicalDeviceProtectedMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68753     operator VkPhysicalDeviceProtectedMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
68754     {
68755       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>( this );
68756     }
68757 
operator VkPhysicalDeviceProtectedMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68758     operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
68759     {
68760       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>( this );
68761     }
68762 
68763 
68764 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68765     auto operator<=>( PhysicalDeviceProtectedMemoryProperties const& ) const = default;
68766 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68767     bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68768     {
68769       return ( sType == rhs.sType )
68770           && ( pNext == rhs.pNext )
68771           && ( protectedNoFault == rhs.protectedNoFault );
68772     }
68773 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68774     bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68775     {
68776       return !operator==( rhs );
68777     }
68778 #endif
68779 
68780 
68781 
68782   public:
68783     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
68784     void* pNext = {};
68785     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
68786 
68787   };
68788   static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" );
68789   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryProperties>::value, "struct wrapper is not a standard layout!" );
68790 
68791   template <>
68792   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryProperties>
68793   {
68794     using Type = PhysicalDeviceProtectedMemoryProperties;
68795   };
68796 
68797   struct PhysicalDevicePushDescriptorPropertiesKHR
68798   {
68799     static const bool allowDuplicate = false;
68800     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
68801 
68802 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68803     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR(uint32_t maxPushDescriptors_ = {}) VULKAN_HPP_NOEXCEPT
68804     : maxPushDescriptors( maxPushDescriptors_ )
68805     {}
68806 
68807     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68808 
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68809     PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68810       : PhysicalDevicePushDescriptorPropertiesKHR( *reinterpret_cast<PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs ) )
68811     {}
68812 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68813 
68814     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68815 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68816     PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68817     {
68818       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs );
68819       return *this;
68820     }
68821 
68822 
operator VkPhysicalDevicePushDescriptorPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68823     operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
68824     {
68825       return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
68826     }
68827 
operator VkPhysicalDevicePushDescriptorPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68828     operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
68829     {
68830       return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
68831     }
68832 
68833 
68834 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68835     auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const& ) const = default;
68836 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68837     bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68838     {
68839       return ( sType == rhs.sType )
68840           && ( pNext == rhs.pNext )
68841           && ( maxPushDescriptors == rhs.maxPushDescriptors );
68842     }
68843 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68844     bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68845     {
68846       return !operator==( rhs );
68847     }
68848 #endif
68849 
68850 
68851 
68852   public:
68853     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
68854     void* pNext = {};
68855     uint32_t maxPushDescriptors = {};
68856 
68857   };
68858   static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" );
68859   static_assert( std::is_standard_layout<PhysicalDevicePushDescriptorPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
68860 
68861   template <>
68862   struct CppType<StructureType, StructureType::ePhysicalDevicePushDescriptorPropertiesKHR>
68863   {
68864     using Type = PhysicalDevicePushDescriptorPropertiesKHR;
68865   };
68866 
68867   struct PhysicalDeviceRayQueryFeaturesKHR
68868   {
68869     static const bool allowDuplicate = false;
68870     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR;
68871 
68872 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68873     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}) VULKAN_HPP_NOEXCEPT
68874     : rayQuery( rayQuery_ )
68875     {}
68876 
68877     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68878 
PhysicalDeviceRayQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68879     PhysicalDeviceRayQueryFeaturesKHR( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68880       : PhysicalDeviceRayQueryFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayQueryFeaturesKHR const *>( &rhs ) )
68881     {}
68882 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68883 
68884     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & operator=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68885 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68886     PhysicalDeviceRayQueryFeaturesKHR & operator=( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68887     {
68888       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR const *>( &rhs );
68889       return *this;
68890     }
68891 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68892     PhysicalDeviceRayQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68893     {
68894       pNext = pNext_;
68895       return *this;
68896     }
68897 
setRayQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68898     PhysicalDeviceRayQueryFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT
68899     {
68900       rayQuery = rayQuery_;
68901       return *this;
68902     }
68903 
68904 
operator VkPhysicalDeviceRayQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68905     operator VkPhysicalDeviceRayQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
68906     {
68907       return *reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>( this );
68908     }
68909 
operator VkPhysicalDeviceRayQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68910     operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
68911     {
68912       return *reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>( this );
68913     }
68914 
68915 
68916 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68917     auto operator<=>( PhysicalDeviceRayQueryFeaturesKHR const& ) const = default;
68918 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68919     bool operator==( PhysicalDeviceRayQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68920     {
68921       return ( sType == rhs.sType )
68922           && ( pNext == rhs.pNext )
68923           && ( rayQuery == rhs.rayQuery );
68924     }
68925 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR68926     bool operator!=( PhysicalDeviceRayQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68927     {
68928       return !operator==( rhs );
68929     }
68930 #endif
68931 
68932 
68933 
68934   public:
68935     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR;
68936     void* pNext = {};
68937     VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {};
68938 
68939   };
68940   static_assert( sizeof( PhysicalDeviceRayQueryFeaturesKHR ) == sizeof( VkPhysicalDeviceRayQueryFeaturesKHR ), "struct and wrapper have different size!" );
68941   static_assert( std::is_standard_layout<PhysicalDeviceRayQueryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
68942 
68943   template <>
68944   struct CppType<StructureType, StructureType::ePhysicalDeviceRayQueryFeaturesKHR>
68945   {
68946     using Type = PhysicalDeviceRayQueryFeaturesKHR;
68947   };
68948 
68949   struct PhysicalDeviceRayTracingPipelineFeaturesKHR
68950   {
68951     static const bool allowDuplicate = false;
68952     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR;
68953 
68954 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPipelineFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR68955     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ = {}) VULKAN_HPP_NOEXCEPT
68956     : rayTracingPipeline( rayTracingPipeline_ ), rayTracingPipelineShaderGroupHandleCaptureReplay( rayTracingPipelineShaderGroupHandleCaptureReplay_ ), rayTracingPipelineShaderGroupHandleCaptureReplayMixed( rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ), rayTracingPipelineTraceRaysIndirect( rayTracingPipelineTraceRaysIndirect_ ), rayTraversalPrimitiveCulling( rayTraversalPrimitiveCulling_ )
68957     {}
68958 
68959     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68960 
PhysicalDeviceRayTracingPipelineFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR68961     PhysicalDeviceRayTracingPipelineFeaturesKHR( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68962       : PhysicalDeviceRayTracingPipelineFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPipelineFeaturesKHR const *>( &rhs ) )
68963     {}
68964 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68965 
68966     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68967 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR68968     PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68969     {
68970       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR const *>( &rhs );
68971       return *this;
68972     }
68973 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR68974     PhysicalDeviceRayTracingPipelineFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68975     {
68976       pNext = pNext_;
68977       return *this;
68978     }
68979 
setRayTracingPipelineVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR68980     PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT
68981     {
68982       rayTracingPipeline = rayTracingPipeline_;
68983       return *this;
68984     }
68985 
setRayTracingPipelineShaderGroupHandleCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR68986     PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
68987     {
68988       rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay_;
68989       return *this;
68990     }
68991 
setRayTracingPipelineShaderGroupHandleCaptureReplayMixedVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR68992     PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplayMixed( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT
68993     {
68994       rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed_;
68995       return *this;
68996     }
68997 
setRayTracingPipelineTraceRaysIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR68998     PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
68999     {
69000       rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect_;
69001       return *this;
69002     }
69003 
setRayTraversalPrimitiveCullingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR69004     PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
69005     {
69006       rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_;
69007       return *this;
69008     }
69009 
69010 
operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR69011     operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
69012     {
69013       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>( this );
69014     }
69015 
operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR69016     operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT
69017     {
69018       return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>( this );
69019     }
69020 
69021 
69022 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69023     auto operator<=>( PhysicalDeviceRayTracingPipelineFeaturesKHR const& ) const = default;
69024 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR69025     bool operator==( PhysicalDeviceRayTracingPipelineFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69026     {
69027       return ( sType == rhs.sType )
69028           && ( pNext == rhs.pNext )
69029           && ( rayTracingPipeline == rhs.rayTracingPipeline )
69030           && ( rayTracingPipelineShaderGroupHandleCaptureReplay == rhs.rayTracingPipelineShaderGroupHandleCaptureReplay )
69031           && ( rayTracingPipelineShaderGroupHandleCaptureReplayMixed == rhs.rayTracingPipelineShaderGroupHandleCaptureReplayMixed )
69032           && ( rayTracingPipelineTraceRaysIndirect == rhs.rayTracingPipelineTraceRaysIndirect )
69033           && ( rayTraversalPrimitiveCulling == rhs.rayTraversalPrimitiveCulling );
69034     }
69035 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR69036     bool operator!=( PhysicalDeviceRayTracingPipelineFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69037     {
69038       return !operator==( rhs );
69039     }
69040 #endif
69041 
69042 
69043 
69044   public:
69045     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR;
69046     void* pNext = {};
69047     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline = {};
69048     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay = {};
69049     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed = {};
69050     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect = {};
69051     VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling = {};
69052 
69053   };
69054   static_assert( sizeof( PhysicalDeviceRayTracingPipelineFeaturesKHR ) == sizeof( VkPhysicalDeviceRayTracingPipelineFeaturesKHR ), "struct and wrapper have different size!" );
69055   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPipelineFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
69056 
69057   template <>
69058   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR>
69059   {
69060     using Type = PhysicalDeviceRayTracingPipelineFeaturesKHR;
69061   };
69062 
69063   struct PhysicalDeviceRayTracingPipelinePropertiesKHR
69064   {
69065     static const bool allowDuplicate = false;
69066     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR;
69067 
69068 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPipelinePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR69069     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRayRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint32_t shaderGroupHandleCaptureReplaySize_ = {}, uint32_t maxRayDispatchInvocationCount_ = {}, uint32_t shaderGroupHandleAlignment_ = {}, uint32_t maxRayHitAttributeSize_ = {}) VULKAN_HPP_NOEXCEPT
69070     : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRayRecursionDepth( maxRayRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ ), maxRayDispatchInvocationCount( maxRayDispatchInvocationCount_ ), shaderGroupHandleAlignment( shaderGroupHandleAlignment_ ), maxRayHitAttributeSize( maxRayHitAttributeSize_ )
69071     {}
69072 
69073     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69074 
PhysicalDeviceRayTracingPipelinePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR69075     PhysicalDeviceRayTracingPipelinePropertiesKHR( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69076       : PhysicalDeviceRayTracingPipelinePropertiesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPipelinePropertiesKHR const *>( &rhs ) )
69077     {}
69078 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69079 
69080     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69081 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR69082     PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69083     {
69084       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR const *>( &rhs );
69085       return *this;
69086     }
69087 
69088 
operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR69089     operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
69090     {
69091       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>( this );
69092     }
69093 
operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR69094     operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT
69095     {
69096       return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>( this );
69097     }
69098 
69099 
69100 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69101     auto operator<=>( PhysicalDeviceRayTracingPipelinePropertiesKHR const& ) const = default;
69102 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR69103     bool operator==( PhysicalDeviceRayTracingPipelinePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69104     {
69105       return ( sType == rhs.sType )
69106           && ( pNext == rhs.pNext )
69107           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
69108           && ( maxRayRecursionDepth == rhs.maxRayRecursionDepth )
69109           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
69110           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
69111           && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize )
69112           && ( maxRayDispatchInvocationCount == rhs.maxRayDispatchInvocationCount )
69113           && ( shaderGroupHandleAlignment == rhs.shaderGroupHandleAlignment )
69114           && ( maxRayHitAttributeSize == rhs.maxRayHitAttributeSize );
69115     }
69116 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR69117     bool operator!=( PhysicalDeviceRayTracingPipelinePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69118     {
69119       return !operator==( rhs );
69120     }
69121 #endif
69122 
69123 
69124 
69125   public:
69126     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR;
69127     void* pNext = {};
69128     uint32_t shaderGroupHandleSize = {};
69129     uint32_t maxRayRecursionDepth = {};
69130     uint32_t maxShaderGroupStride = {};
69131     uint32_t shaderGroupBaseAlignment = {};
69132     uint32_t shaderGroupHandleCaptureReplaySize = {};
69133     uint32_t maxRayDispatchInvocationCount = {};
69134     uint32_t shaderGroupHandleAlignment = {};
69135     uint32_t maxRayHitAttributeSize = {};
69136 
69137   };
69138   static_assert( sizeof( PhysicalDeviceRayTracingPipelinePropertiesKHR ) == sizeof( VkPhysicalDeviceRayTracingPipelinePropertiesKHR ), "struct and wrapper have different size!" );
69139   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPipelinePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
69140 
69141   template <>
69142   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR>
69143   {
69144     using Type = PhysicalDeviceRayTracingPipelinePropertiesKHR;
69145   };
69146 
69147   struct PhysicalDeviceRayTracingPropertiesNV
69148   {
69149     static const bool allowDuplicate = false;
69150     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
69151 
69152 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV69153     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
69154     : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxTriangleCount( maxTriangleCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
69155     {}
69156 
69157     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69158 
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV69159     PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69160       : PhysicalDeviceRayTracingPropertiesNV( *reinterpret_cast<PhysicalDeviceRayTracingPropertiesNV const *>( &rhs ) )
69161     {}
69162 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69163 
69164     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69165 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV69166     PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69167     {
69168       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const *>( &rhs );
69169       return *this;
69170     }
69171 
69172 
operator VkPhysicalDeviceRayTracingPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV69173     operator VkPhysicalDeviceRayTracingPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
69174     {
69175       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>( this );
69176     }
69177 
operator VkPhysicalDeviceRayTracingPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV69178     operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
69179     {
69180       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>( this );
69181     }
69182 
69183 
69184 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69185     auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const& ) const = default;
69186 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV69187     bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69188     {
69189       return ( sType == rhs.sType )
69190           && ( pNext == rhs.pNext )
69191           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
69192           && ( maxRecursionDepth == rhs.maxRecursionDepth )
69193           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
69194           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
69195           && ( maxGeometryCount == rhs.maxGeometryCount )
69196           && ( maxInstanceCount == rhs.maxInstanceCount )
69197           && ( maxTriangleCount == rhs.maxTriangleCount )
69198           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
69199     }
69200 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV69201     bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69202     {
69203       return !operator==( rhs );
69204     }
69205 #endif
69206 
69207 
69208 
69209   public:
69210     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
69211     void* pNext = {};
69212     uint32_t shaderGroupHandleSize = {};
69213     uint32_t maxRecursionDepth = {};
69214     uint32_t maxShaderGroupStride = {};
69215     uint32_t shaderGroupBaseAlignment = {};
69216     uint64_t maxGeometryCount = {};
69217     uint64_t maxInstanceCount = {};
69218     uint64_t maxTriangleCount = {};
69219     uint32_t maxDescriptorSetAccelerationStructures = {};
69220 
69221   };
69222   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" );
69223   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesNV>::value, "struct wrapper is not a standard layout!" );
69224 
69225   template <>
69226   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesNV>
69227   {
69228     using Type = PhysicalDeviceRayTracingPropertiesNV;
69229   };
69230 
69231   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
69232   {
69233     static const bool allowDuplicate = false;
69234     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
69235 
69236 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69237     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {}) VULKAN_HPP_NOEXCEPT
69238     : representativeFragmentTest( representativeFragmentTest_ )
69239     {}
69240 
69241     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69242 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69243     PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69244       : PhysicalDeviceRepresentativeFragmentTestFeaturesNV( *reinterpret_cast<PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs ) )
69245     {}
69246 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69247 
69248     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69249 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69250     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69251     {
69252       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs );
69253       return *this;
69254     }
69255 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69256     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69257     {
69258       pNext = pNext_;
69259       return *this;
69260     }
69261 
setRepresentativeFragmentTestVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69262     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
69263     {
69264       representativeFragmentTest = representativeFragmentTest_;
69265       return *this;
69266     }
69267 
69268 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69269     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
69270     {
69271       return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
69272     }
69273 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69274     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
69275     {
69276       return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
69277     }
69278 
69279 
69280 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69281     auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& ) const = default;
69282 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69283     bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69284     {
69285       return ( sType == rhs.sType )
69286           && ( pNext == rhs.pNext )
69287           && ( representativeFragmentTest == rhs.representativeFragmentTest );
69288     }
69289 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV69290     bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69291     {
69292       return !operator==( rhs );
69293     }
69294 #endif
69295 
69296 
69297 
69298   public:
69299     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
69300     void* pNext = {};
69301     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {};
69302 
69303   };
69304   static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" );
69305   static_assert( std::is_standard_layout<PhysicalDeviceRepresentativeFragmentTestFeaturesNV>::value, "struct wrapper is not a standard layout!" );
69306 
69307   template <>
69308   struct CppType<StructureType, StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV>
69309   {
69310     using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
69311   };
69312 
69313   struct PhysicalDeviceRobustness2FeaturesEXT
69314   {
69315     static const bool allowDuplicate = false;
69316     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
69317 
69318 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69319     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {}) VULKAN_HPP_NOEXCEPT
69320     : robustBufferAccess2( robustBufferAccess2_ ), robustImageAccess2( robustImageAccess2_ ), nullDescriptor( nullDescriptor_ )
69321     {}
69322 
69323     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69324 
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69325     PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69326       : PhysicalDeviceRobustness2FeaturesEXT( *reinterpret_cast<PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs ) )
69327     {}
69328 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69329 
69330     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69331 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69332     PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69333     {
69334       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs );
69335       return *this;
69336     }
69337 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69338     PhysicalDeviceRobustness2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69339     {
69340       pNext = pNext_;
69341       return *this;
69342     }
69343 
setRobustBufferAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69344     PhysicalDeviceRobustness2FeaturesEXT & setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
69345     {
69346       robustBufferAccess2 = robustBufferAccess2_;
69347       return *this;
69348     }
69349 
setRobustImageAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69350     PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT
69351     {
69352       robustImageAccess2 = robustImageAccess2_;
69353       return *this;
69354     }
69355 
setNullDescriptorVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69356     PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT
69357     {
69358       nullDescriptor = nullDescriptor_;
69359       return *this;
69360     }
69361 
69362 
operator VkPhysicalDeviceRobustness2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69363     operator VkPhysicalDeviceRobustness2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
69364     {
69365       return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
69366     }
69367 
operator VkPhysicalDeviceRobustness2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69368     operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
69369     {
69370       return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
69371     }
69372 
69373 
69374 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69375     auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const& ) const = default;
69376 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69377     bool operator==( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69378     {
69379       return ( sType == rhs.sType )
69380           && ( pNext == rhs.pNext )
69381           && ( robustBufferAccess2 == rhs.robustBufferAccess2 )
69382           && ( robustImageAccess2 == rhs.robustImageAccess2 )
69383           && ( nullDescriptor == rhs.nullDescriptor );
69384     }
69385 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT69386     bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69387     {
69388       return !operator==( rhs );
69389     }
69390 #endif
69391 
69392 
69393 
69394   public:
69395     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
69396     void* pNext = {};
69397     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {};
69398     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {};
69399     VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {};
69400 
69401   };
69402   static_assert( sizeof( PhysicalDeviceRobustness2FeaturesEXT ) == sizeof( VkPhysicalDeviceRobustness2FeaturesEXT ), "struct and wrapper have different size!" );
69403   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
69404 
69405   template <>
69406   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2FeaturesEXT>
69407   {
69408     using Type = PhysicalDeviceRobustness2FeaturesEXT;
69409   };
69410 
69411   struct PhysicalDeviceRobustness2PropertiesEXT
69412   {
69413     static const bool allowDuplicate = false;
69414     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
69415 
69416 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69417     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {}) VULKAN_HPP_NOEXCEPT
69418     : robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ ), robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
69419     {}
69420 
69421     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69422 
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69423     PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69424       : PhysicalDeviceRobustness2PropertiesEXT( *reinterpret_cast<PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs ) )
69425     {}
69426 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69427 
69428     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69429 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69430     PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69431     {
69432       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs );
69433       return *this;
69434     }
69435 
69436 
operator VkPhysicalDeviceRobustness2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69437     operator VkPhysicalDeviceRobustness2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
69438     {
69439       return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
69440     }
69441 
operator VkPhysicalDeviceRobustness2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69442     operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
69443     {
69444       return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
69445     }
69446 
69447 
69448 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69449     auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const& ) const = default;
69450 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69451     bool operator==( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69452     {
69453       return ( sType == rhs.sType )
69454           && ( pNext == rhs.pNext )
69455           && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment )
69456           && ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment );
69457     }
69458 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69459     bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69460     {
69461       return !operator==( rhs );
69462     }
69463 #endif
69464 
69465 
69466 
69467   public:
69468     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
69469     void* pNext = {};
69470     VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {};
69471     VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {};
69472 
69473   };
69474   static_assert( sizeof( PhysicalDeviceRobustness2PropertiesEXT ) == sizeof( VkPhysicalDeviceRobustness2PropertiesEXT ), "struct and wrapper have different size!" );
69475   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
69476 
69477   template <>
69478   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2PropertiesEXT>
69479   {
69480     using Type = PhysicalDeviceRobustness2PropertiesEXT;
69481   };
69482 
69483   struct PhysicalDeviceSampleLocationsPropertiesEXT
69484   {
69485     static const bool allowDuplicate = false;
69486     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
69487 
69488 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69489     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
69490     : sampleLocationSampleCounts( sampleLocationSampleCounts_ ), maxSampleLocationGridSize( maxSampleLocationGridSize_ ), sampleLocationCoordinateRange( sampleLocationCoordinateRange_ ), sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ), variableSampleLocations( variableSampleLocations_ )
69491     {}
69492 
69493     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69494 
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69495     PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69496       : PhysicalDeviceSampleLocationsPropertiesEXT( *reinterpret_cast<PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs ) )
69497     {}
69498 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69499 
69500     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69501 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69502     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69503     {
69504       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs );
69505       return *this;
69506     }
69507 
69508 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69509     operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
69510     {
69511       return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
69512     }
69513 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69514     operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
69515     {
69516       return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
69517     }
69518 
69519 
69520 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69521     auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const& ) const = default;
69522 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69523     bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69524     {
69525       return ( sType == rhs.sType )
69526           && ( pNext == rhs.pNext )
69527           && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts )
69528           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize )
69529           && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange )
69530           && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits )
69531           && ( variableSampleLocations == rhs.variableSampleLocations );
69532     }
69533 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69534     bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69535     {
69536       return !operator==( rhs );
69537     }
69538 #endif
69539 
69540 
69541 
69542   public:
69543     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
69544     void* pNext = {};
69545     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {};
69546     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
69547     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> sampleLocationCoordinateRange = {};
69548     uint32_t sampleLocationSubPixelBits = {};
69549     VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {};
69550 
69551   };
69552   static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" );
69553   static_assert( std::is_standard_layout<PhysicalDeviceSampleLocationsPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
69554 
69555   template <>
69556   struct CppType<StructureType, StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT>
69557   {
69558     using Type = PhysicalDeviceSampleLocationsPropertiesEXT;
69559   };
69560 
69561   struct PhysicalDeviceSamplerFilterMinmaxProperties
69562   {
69563     static const bool allowDuplicate = false;
69564     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
69565 
69566 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69567     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties(VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}) VULKAN_HPP_NOEXCEPT
69568     : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
69569     {}
69570 
69571     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69572 
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69573     PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
69574       : PhysicalDeviceSamplerFilterMinmaxProperties( *reinterpret_cast<PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs ) )
69575     {}
69576 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69577 
69578     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69579 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69580     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
69581     {
69582       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs );
69583       return *this;
69584     }
69585 
69586 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69587     operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&() const VULKAN_HPP_NOEXCEPT
69588     {
69589       return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
69590     }
69591 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69592     operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
69593     {
69594       return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
69595     }
69596 
69597 
69598 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69599     auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const& ) const = default;
69600 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69601     bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
69602     {
69603       return ( sType == rhs.sType )
69604           && ( pNext == rhs.pNext )
69605           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
69606           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
69607     }
69608 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69609     bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
69610     {
69611       return !operator==( rhs );
69612     }
69613 #endif
69614 
69615 
69616 
69617   public:
69618     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
69619     void* pNext = {};
69620     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
69621     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
69622 
69623   };
69624   static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), "struct and wrapper have different size!" );
69625   static_assert( std::is_standard_layout<PhysicalDeviceSamplerFilterMinmaxProperties>::value, "struct wrapper is not a standard layout!" );
69626 
69627   template <>
69628   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties>
69629   {
69630     using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
69631   };
69632   using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
69633 
69634   struct PhysicalDeviceSamplerYcbcrConversionFeatures
69635   {
69636     static const bool allowDuplicate = false;
69637     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
69638 
69639 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69640     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures(VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}) VULKAN_HPP_NOEXCEPT
69641     : samplerYcbcrConversion( samplerYcbcrConversion_ )
69642     {}
69643 
69644     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69645 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69646     PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69647       : PhysicalDeviceSamplerYcbcrConversionFeatures( *reinterpret_cast<PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs ) )
69648     {}
69649 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69650 
69651     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69652 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69653     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69654     {
69655       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs );
69656       return *this;
69657     }
69658 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69659     PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69660     {
69661       pNext = pNext_;
69662       return *this;
69663     }
69664 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69665     PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
69666     {
69667       samplerYcbcrConversion = samplerYcbcrConversion_;
69668       return *this;
69669     }
69670 
69671 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69672     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const VULKAN_HPP_NOEXCEPT
69673     {
69674       return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
69675     }
69676 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69677     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
69678     {
69679       return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
69680     }
69681 
69682 
69683 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69684     auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const& ) const = default;
69685 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69686     bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69687     {
69688       return ( sType == rhs.sType )
69689           && ( pNext == rhs.pNext )
69690           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
69691     }
69692 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69693     bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69694     {
69695       return !operator==( rhs );
69696     }
69697 #endif
69698 
69699 
69700 
69701   public:
69702     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
69703     void* pNext = {};
69704     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
69705 
69706   };
69707   static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" );
69708   static_assert( std::is_standard_layout<PhysicalDeviceSamplerYcbcrConversionFeatures>::value, "struct wrapper is not a standard layout!" );
69709 
69710   template <>
69711   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures>
69712   {
69713     using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
69714   };
69715   using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
69716 
69717   struct PhysicalDeviceScalarBlockLayoutFeatures
69718   {
69719     static const bool allowDuplicate = false;
69720     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
69721 
69722 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69723     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}) VULKAN_HPP_NOEXCEPT
69724     : scalarBlockLayout( scalarBlockLayout_ )
69725     {}
69726 
69727     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69728 
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69729     PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69730       : PhysicalDeviceScalarBlockLayoutFeatures( *reinterpret_cast<PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs ) )
69731     {}
69732 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69733 
69734     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69735 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69736     PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69737     {
69738       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs );
69739       return *this;
69740     }
69741 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69742     PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69743     {
69744       pNext = pNext_;
69745       return *this;
69746     }
69747 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69748     PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
69749     {
69750       scalarBlockLayout = scalarBlockLayout_;
69751       return *this;
69752     }
69753 
69754 
operator VkPhysicalDeviceScalarBlockLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69755     operator VkPhysicalDeviceScalarBlockLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
69756     {
69757       return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
69758     }
69759 
operator VkPhysicalDeviceScalarBlockLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69760     operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
69761     {
69762       return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
69763     }
69764 
69765 
69766 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69767     auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const& ) const = default;
69768 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69769     bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69770     {
69771       return ( sType == rhs.sType )
69772           && ( pNext == rhs.pNext )
69773           && ( scalarBlockLayout == rhs.scalarBlockLayout );
69774     }
69775 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69776     bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69777     {
69778       return !operator==( rhs );
69779     }
69780 #endif
69781 
69782 
69783 
69784   public:
69785     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
69786     void* pNext = {};
69787     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
69788 
69789   };
69790   static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), "struct and wrapper have different size!" );
69791   static_assert( std::is_standard_layout<PhysicalDeviceScalarBlockLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
69792 
69793   template <>
69794   struct CppType<StructureType, StructureType::ePhysicalDeviceScalarBlockLayoutFeatures>
69795   {
69796     using Type = PhysicalDeviceScalarBlockLayoutFeatures;
69797   };
69798   using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
69799 
69800   struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
69801   {
69802     static const bool allowDuplicate = false;
69803     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69804 
69805 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69806     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures(VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}) VULKAN_HPP_NOEXCEPT
69807     : separateDepthStencilLayouts( separateDepthStencilLayouts_ )
69808     {}
69809 
69810     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69811 
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69812     PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69813       : PhysicalDeviceSeparateDepthStencilLayoutsFeatures( *reinterpret_cast<PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs ) )
69814     {}
69815 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69816 
69817     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69818 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69819     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69820     {
69821       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs );
69822       return *this;
69823     }
69824 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69825     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69826     {
69827       pNext = pNext_;
69828       return *this;
69829     }
69830 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69831     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
69832     {
69833       separateDepthStencilLayouts = separateDepthStencilLayouts_;
69834       return *this;
69835     }
69836 
69837 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69838     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&() const VULKAN_HPP_NOEXCEPT
69839     {
69840       return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
69841     }
69842 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69843     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
69844     {
69845       return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
69846     }
69847 
69848 
69849 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69850     auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& ) const = default;
69851 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69852     bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69853     {
69854       return ( sType == rhs.sType )
69855           && ( pNext == rhs.pNext )
69856           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts );
69857     }
69858 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69859     bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69860     {
69861       return !operator==( rhs );
69862     }
69863 #endif
69864 
69865 
69866 
69867   public:
69868     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69869     void* pNext = {};
69870     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
69871 
69872   };
69873   static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), "struct and wrapper have different size!" );
69874   static_assert( std::is_standard_layout<PhysicalDeviceSeparateDepthStencilLayoutsFeatures>::value, "struct wrapper is not a standard layout!" );
69875 
69876   template <>
69877   struct CppType<StructureType, StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures>
69878   {
69879     using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69880   };
69881   using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69882 
69883   struct PhysicalDeviceShaderAtomicFloatFeaturesEXT
69884   {
69885     static const bool allowDuplicate = false;
69886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
69887 
69888 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69889     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
69890     : shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ ), shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ ), shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ ), shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ ), shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ ), shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ ), shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ ), shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ ), shaderImageFloat32Atomics( shaderImageFloat32Atomics_ ), shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ ), sparseImageFloat32Atomics( sparseImageFloat32Atomics_ ), sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ )
69891     {}
69892 
69893     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69894 
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69895     PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69896       : PhysicalDeviceShaderAtomicFloatFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs ) )
69897     {}
69898 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69899 
69900     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69901 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69902     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69903     {
69904       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs );
69905       return *this;
69906     }
69907 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69908     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69909     {
69910       pNext = pNext_;
69911       return *this;
69912     }
69913 
setShaderBufferFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69914     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69915     {
69916       shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_;
69917       return *this;
69918     }
69919 
setShaderBufferFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69920     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69921     {
69922       shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_;
69923       return *this;
69924     }
69925 
setShaderBufferFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69926     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
69927     {
69928       shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_;
69929       return *this;
69930     }
69931 
setShaderBufferFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69932     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69933     {
69934       shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_;
69935       return *this;
69936     }
69937 
setShaderSharedFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69938     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69939     {
69940       shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_;
69941       return *this;
69942     }
69943 
setShaderSharedFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69944     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69945     {
69946       shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_;
69947       return *this;
69948     }
69949 
setShaderSharedFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69950     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
69951     {
69952       shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_;
69953       return *this;
69954     }
69955 
setShaderSharedFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69956     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69957     {
69958       shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_;
69959       return *this;
69960     }
69961 
setShaderImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69962     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69963     {
69964       shaderImageFloat32Atomics = shaderImageFloat32Atomics_;
69965       return *this;
69966     }
69967 
setShaderImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69968     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69969     {
69970       shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_;
69971       return *this;
69972     }
69973 
setSparseImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69974     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69975     {
69976       sparseImageFloat32Atomics = sparseImageFloat32Atomics_;
69977       return *this;
69978     }
69979 
setSparseImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69980     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69981     {
69982       sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
69983       return *this;
69984     }
69985 
69986 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69987     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
69988     {
69989       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
69990     }
69991 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69992     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69993     {
69994       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
69995     }
69996 
69997 
69998 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69999     auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& ) const = default;
70000 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT70001     bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70002     {
70003       return ( sType == rhs.sType )
70004           && ( pNext == rhs.pNext )
70005           && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics )
70006           && ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd )
70007           && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics )
70008           && ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd )
70009           && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics )
70010           && ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd )
70011           && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics )
70012           && ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd )
70013           && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics )
70014           && ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd )
70015           && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics )
70016           && ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd );
70017     }
70018 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT70019     bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70020     {
70021       return !operator==( rhs );
70022     }
70023 #endif
70024 
70025 
70026 
70027   public:
70028     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
70029     void* pNext = {};
70030     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {};
70031     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {};
70032     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {};
70033     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {};
70034     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {};
70035     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {};
70036     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {};
70037     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {};
70038     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {};
70039     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {};
70040     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {};
70041     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {};
70042 
70043   };
70044   static_assert( sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT ), "struct and wrapper have different size!" );
70045   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicFloatFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70046 
70047   template <>
70048   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT>
70049   {
70050     using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT;
70051   };
70052 
70053   struct PhysicalDeviceShaderAtomicInt64Features
70054   {
70055     static const bool allowDuplicate = false;
70056     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
70057 
70058 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70059     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT
70060     : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
70061     {}
70062 
70063     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70064 
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70065     PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
70066       : PhysicalDeviceShaderAtomicInt64Features( *reinterpret_cast<PhysicalDeviceShaderAtomicInt64Features const *>( &rhs ) )
70067     {}
70068 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70069 
70070     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70071 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70072     PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
70073     {
70074       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const *>( &rhs );
70075       return *this;
70076     }
70077 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70078     PhysicalDeviceShaderAtomicInt64Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70079     {
70080       pNext = pNext_;
70081       return *this;
70082     }
70083 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70084     PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
70085     {
70086       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
70087       return *this;
70088     }
70089 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70090     PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
70091     {
70092       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
70093       return *this;
70094     }
70095 
70096 
operator VkPhysicalDeviceShaderAtomicInt64Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70097     operator VkPhysicalDeviceShaderAtomicInt64Features const&() const VULKAN_HPP_NOEXCEPT
70098     {
70099       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>( this );
70100     }
70101 
operator VkPhysicalDeviceShaderAtomicInt64Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70102     operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
70103     {
70104       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>( this );
70105     }
70106 
70107 
70108 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70109     auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const& ) const = default;
70110 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70111     bool operator==( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
70112     {
70113       return ( sType == rhs.sType )
70114           && ( pNext == rhs.pNext )
70115           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
70116           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
70117     }
70118 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features70119     bool operator!=( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
70120     {
70121       return !operator==( rhs );
70122     }
70123 #endif
70124 
70125 
70126 
70127   public:
70128     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
70129     void* pNext = {};
70130     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
70131     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
70132 
70133   };
70134   static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), "struct and wrapper have different size!" );
70135   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicInt64Features>::value, "struct wrapper is not a standard layout!" );
70136 
70137   template <>
70138   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicInt64Features>
70139   {
70140     using Type = PhysicalDeviceShaderAtomicInt64Features;
70141   };
70142   using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
70143 
70144   struct PhysicalDeviceShaderClockFeaturesKHR
70145   {
70146     static const bool allowDuplicate = false;
70147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
70148 
70149 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70150     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {}) VULKAN_HPP_NOEXCEPT
70151     : shaderSubgroupClock( shaderSubgroupClock_ ), shaderDeviceClock( shaderDeviceClock_ )
70152     {}
70153 
70154     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70155 
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70156     PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70157       : PhysicalDeviceShaderClockFeaturesKHR( *reinterpret_cast<PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs ) )
70158     {}
70159 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70160 
70161     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70162 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70163     PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70164     {
70165       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs );
70166       return *this;
70167     }
70168 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70169     PhysicalDeviceShaderClockFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70170     {
70171       pNext = pNext_;
70172       return *this;
70173     }
70174 
setShaderSubgroupClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70175     PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
70176     {
70177       shaderSubgroupClock = shaderSubgroupClock_;
70178       return *this;
70179     }
70180 
setShaderDeviceClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70181     PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT
70182     {
70183       shaderDeviceClock = shaderDeviceClock_;
70184       return *this;
70185     }
70186 
70187 
operator VkPhysicalDeviceShaderClockFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70188     operator VkPhysicalDeviceShaderClockFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
70189     {
70190       return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
70191     }
70192 
operator VkPhysicalDeviceShaderClockFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70193     operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
70194     {
70195       return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
70196     }
70197 
70198 
70199 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70200     auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const& ) const = default;
70201 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70202     bool operator==( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70203     {
70204       return ( sType == rhs.sType )
70205           && ( pNext == rhs.pNext )
70206           && ( shaderSubgroupClock == rhs.shaderSubgroupClock )
70207           && ( shaderDeviceClock == rhs.shaderDeviceClock );
70208     }
70209 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR70210     bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70211     {
70212       return !operator==( rhs );
70213     }
70214 #endif
70215 
70216 
70217 
70218   public:
70219     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
70220     void* pNext = {};
70221     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {};
70222     VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {};
70223 
70224   };
70225   static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), "struct and wrapper have different size!" );
70226   static_assert( std::is_standard_layout<PhysicalDeviceShaderClockFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
70227 
70228   template <>
70229   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderClockFeaturesKHR>
70230   {
70231     using Type = PhysicalDeviceShaderClockFeaturesKHR;
70232   };
70233 
70234   struct PhysicalDeviceShaderCoreProperties2AMD
70235   {
70236     static const bool allowDuplicate = false;
70237     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
70238 
70239 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD70240     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD(VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, uint32_t activeComputeUnitCount_ = {}) VULKAN_HPP_NOEXCEPT
70241     : shaderCoreFeatures( shaderCoreFeatures_ ), activeComputeUnitCount( activeComputeUnitCount_ )
70242     {}
70243 
70244     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70245 
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD70246     PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
70247       : PhysicalDeviceShaderCoreProperties2AMD( *reinterpret_cast<PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs ) )
70248     {}
70249 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70250 
70251     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70252 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD70253     PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
70254     {
70255       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs );
70256       return *this;
70257     }
70258 
70259 
operator VkPhysicalDeviceShaderCoreProperties2AMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD70260     operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const VULKAN_HPP_NOEXCEPT
70261     {
70262       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
70263     }
70264 
operator VkPhysicalDeviceShaderCoreProperties2AMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD70265     operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
70266     {
70267       return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
70268     }
70269 
70270 
70271 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70272     auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const& ) const = default;
70273 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD70274     bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70275     {
70276       return ( sType == rhs.sType )
70277           && ( pNext == rhs.pNext )
70278           && ( shaderCoreFeatures == rhs.shaderCoreFeatures )
70279           && ( activeComputeUnitCount == rhs.activeComputeUnitCount );
70280     }
70281 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD70282     bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70283     {
70284       return !operator==( rhs );
70285     }
70286 #endif
70287 
70288 
70289 
70290   public:
70291     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
70292     void* pNext = {};
70293     VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {};
70294     uint32_t activeComputeUnitCount = {};
70295 
70296   };
70297   static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" );
70298   static_assert( std::is_standard_layout<PhysicalDeviceShaderCoreProperties2AMD>::value, "struct wrapper is not a standard layout!" );
70299 
70300   template <>
70301   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreProperties2AMD>
70302   {
70303     using Type = PhysicalDeviceShaderCoreProperties2AMD;
70304   };
70305 
70306   struct PhysicalDeviceShaderCorePropertiesAMD
70307   {
70308     static const bool allowDuplicate = false;
70309     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
70310 
70311 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70312     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
70313     : 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_ )
70314     {}
70315 
70316     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70317 
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70318     PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
70319       : PhysicalDeviceShaderCorePropertiesAMD( *reinterpret_cast<PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs ) )
70320     {}
70321 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70322 
70323     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70324 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70325     PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
70326     {
70327       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs );
70328       return *this;
70329     }
70330 
70331 
operator VkPhysicalDeviceShaderCorePropertiesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70332     operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
70333     {
70334       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
70335     }
70336 
operator VkPhysicalDeviceShaderCorePropertiesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70337     operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
70338     {
70339       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
70340     }
70341 
70342 
70343 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70344     auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const& ) const = default;
70345 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70346     bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70347     {
70348       return ( sType == rhs.sType )
70349           && ( pNext == rhs.pNext )
70350           && ( shaderEngineCount == rhs.shaderEngineCount )
70351           && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount )
70352           && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray )
70353           && ( simdPerComputeUnit == rhs.simdPerComputeUnit )
70354           && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd )
70355           && ( wavefrontSize == rhs.wavefrontSize )
70356           && ( sgprsPerSimd == rhs.sgprsPerSimd )
70357           && ( minSgprAllocation == rhs.minSgprAllocation )
70358           && ( maxSgprAllocation == rhs.maxSgprAllocation )
70359           && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity )
70360           && ( vgprsPerSimd == rhs.vgprsPerSimd )
70361           && ( minVgprAllocation == rhs.minVgprAllocation )
70362           && ( maxVgprAllocation == rhs.maxVgprAllocation )
70363           && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
70364     }
70365 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70366     bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70367     {
70368       return !operator==( rhs );
70369     }
70370 #endif
70371 
70372 
70373 
70374   public:
70375     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
70376     void* pNext = {};
70377     uint32_t shaderEngineCount = {};
70378     uint32_t shaderArraysPerEngineCount = {};
70379     uint32_t computeUnitsPerShaderArray = {};
70380     uint32_t simdPerComputeUnit = {};
70381     uint32_t wavefrontsPerSimd = {};
70382     uint32_t wavefrontSize = {};
70383     uint32_t sgprsPerSimd = {};
70384     uint32_t minSgprAllocation = {};
70385     uint32_t maxSgprAllocation = {};
70386     uint32_t sgprAllocationGranularity = {};
70387     uint32_t vgprsPerSimd = {};
70388     uint32_t minVgprAllocation = {};
70389     uint32_t maxVgprAllocation = {};
70390     uint32_t vgprAllocationGranularity = {};
70391 
70392   };
70393   static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" );
70394   static_assert( std::is_standard_layout<PhysicalDeviceShaderCorePropertiesAMD>::value, "struct wrapper is not a standard layout!" );
70395 
70396   template <>
70397   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesAMD>
70398   {
70399     using Type = PhysicalDeviceShaderCorePropertiesAMD;
70400   };
70401 
70402   struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
70403   {
70404     static const bool allowDuplicate = false;
70405     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
70406 
70407 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70408     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {}) VULKAN_HPP_NOEXCEPT
70409     : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
70410     {}
70411 
70412     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70413 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70414     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70415       : PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const *>( &rhs ) )
70416     {}
70417 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70418 
70419     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70420 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70421     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70422     {
70423       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const *>( &rhs );
70424       return *this;
70425     }
70426 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70427     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70428     {
70429       pNext = pNext_;
70430       return *this;
70431     }
70432 
setShaderDemoteToHelperInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70433     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
70434     {
70435       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
70436       return *this;
70437     }
70438 
70439 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70440     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70441     {
70442       return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
70443     }
70444 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70445     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70446     {
70447       return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
70448     }
70449 
70450 
70451 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70452     auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& ) const = default;
70453 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70454     bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70455     {
70456       return ( sType == rhs.sType )
70457           && ( pNext == rhs.pNext )
70458           && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
70459     }
70460 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70461     bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70462     {
70463       return !operator==( rhs );
70464     }
70465 #endif
70466 
70467 
70468 
70469   public:
70470     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
70471     void* pNext = {};
70472     VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
70473 
70474   };
70475   static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" );
70476   static_assert( std::is_standard_layout<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70477 
70478   template <>
70479   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>
70480   {
70481     using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
70482   };
70483 
70484   struct PhysicalDeviceShaderDrawParametersFeatures
70485   {
70486     static const bool allowDuplicate = false;
70487     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
70488 
70489 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70490     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT
70491     : shaderDrawParameters( shaderDrawParameters_ )
70492     {}
70493 
70494     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70495 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70496     PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70497       : PhysicalDeviceShaderDrawParametersFeatures( *reinterpret_cast<PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs ) )
70498     {}
70499 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70500 
70501     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70502 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70503     PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70504     {
70505       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs );
70506       return *this;
70507     }
70508 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70509     PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70510     {
70511       pNext = pNext_;
70512       return *this;
70513     }
70514 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70515     PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
70516     {
70517       shaderDrawParameters = shaderDrawParameters_;
70518       return *this;
70519     }
70520 
70521 
operator VkPhysicalDeviceShaderDrawParametersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70522     operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const VULKAN_HPP_NOEXCEPT
70523     {
70524       return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
70525     }
70526 
operator VkPhysicalDeviceShaderDrawParametersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70527     operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
70528     {
70529       return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
70530     }
70531 
70532 
70533 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70534     auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const& ) const = default;
70535 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70536     bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70537     {
70538       return ( sType == rhs.sType )
70539           && ( pNext == rhs.pNext )
70540           && ( shaderDrawParameters == rhs.shaderDrawParameters );
70541     }
70542 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70543     bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70544     {
70545       return !operator==( rhs );
70546     }
70547 #endif
70548 
70549 
70550 
70551   public:
70552     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
70553     void* pNext = {};
70554     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
70555 
70556   };
70557   static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" );
70558   static_assert( std::is_standard_layout<PhysicalDeviceShaderDrawParametersFeatures>::value, "struct wrapper is not a standard layout!" );
70559 
70560   template <>
70561   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDrawParametersFeatures>
70562   {
70563     using Type = PhysicalDeviceShaderDrawParametersFeatures;
70564   };
70565   using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
70566 
70567   struct PhysicalDeviceShaderFloat16Int8Features
70568   {
70569     static const bool allowDuplicate = false;
70570     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
70571 
70572 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70573     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features(VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}) VULKAN_HPP_NOEXCEPT
70574     : shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ )
70575     {}
70576 
70577     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70578 
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70579     PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
70580       : PhysicalDeviceShaderFloat16Int8Features( *reinterpret_cast<PhysicalDeviceShaderFloat16Int8Features const *>( &rhs ) )
70581     {}
70582 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70583 
70584     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70585 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70586     PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
70587     {
70588       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const *>( &rhs );
70589       return *this;
70590     }
70591 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70592     PhysicalDeviceShaderFloat16Int8Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70593     {
70594       pNext = pNext_;
70595       return *this;
70596     }
70597 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70598     PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
70599     {
70600       shaderFloat16 = shaderFloat16_;
70601       return *this;
70602     }
70603 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70604     PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
70605     {
70606       shaderInt8 = shaderInt8_;
70607       return *this;
70608     }
70609 
70610 
operator VkPhysicalDeviceShaderFloat16Int8Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70611     operator VkPhysicalDeviceShaderFloat16Int8Features const&() const VULKAN_HPP_NOEXCEPT
70612     {
70613       return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>( this );
70614     }
70615 
operator VkPhysicalDeviceShaderFloat16Int8Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70616     operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
70617     {
70618       return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>( this );
70619     }
70620 
70621 
70622 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70623     auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const& ) const = default;
70624 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70625     bool operator==( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
70626     {
70627       return ( sType == rhs.sType )
70628           && ( pNext == rhs.pNext )
70629           && ( shaderFloat16 == rhs.shaderFloat16 )
70630           && ( shaderInt8 == rhs.shaderInt8 );
70631     }
70632 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70633     bool operator!=( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
70634     {
70635       return !operator==( rhs );
70636     }
70637 #endif
70638 
70639 
70640 
70641   public:
70642     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
70643     void* pNext = {};
70644     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
70645     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
70646 
70647   };
70648   static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), "struct and wrapper have different size!" );
70649   static_assert( std::is_standard_layout<PhysicalDeviceShaderFloat16Int8Features>::value, "struct wrapper is not a standard layout!" );
70650 
70651   template <>
70652   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderFloat16Int8Features>
70653   {
70654     using Type = PhysicalDeviceShaderFloat16Int8Features;
70655   };
70656   using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
70657   using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
70658 
70659   struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
70660   {
70661     static const bool allowDuplicate = false;
70662     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
70663 
70664 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70665     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT
70666     : shaderImageInt64Atomics( shaderImageInt64Atomics_ ), sparseImageInt64Atomics( sparseImageInt64Atomics_ )
70667     {}
70668 
70669     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70670 
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70671     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70672       : PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs ) )
70673     {}
70674 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70675 
70676     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70677 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70678     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70679     {
70680       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs );
70681       return *this;
70682     }
70683 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70684     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70685     {
70686       pNext = pNext_;
70687       return *this;
70688     }
70689 
setShaderImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70690     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
70691     {
70692       shaderImageInt64Atomics = shaderImageInt64Atomics_;
70693       return *this;
70694     }
70695 
setSparseImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70696     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
70697     {
70698       sparseImageInt64Atomics = sparseImageInt64Atomics_;
70699       return *this;
70700     }
70701 
70702 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70703     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70704     {
70705       return *reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
70706     }
70707 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70708     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
70709     {
70710       return *reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
70711     }
70712 
70713 
70714 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70715     auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& ) const = default;
70716 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70717     bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70718     {
70719       return ( sType == rhs.sType )
70720           && ( pNext == rhs.pNext )
70721           && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics )
70722           && ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics );
70723     }
70724 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70725     bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70726     {
70727       return !operator==( rhs );
70728     }
70729 #endif
70730 
70731 
70732 
70733   public:
70734     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
70735     void* pNext = {};
70736     VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {};
70737     VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {};
70738 
70739   };
70740   static_assert( sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) == sizeof( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT ), "struct and wrapper have different size!" );
70741   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70742 
70743   template <>
70744   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
70745   {
70746     using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
70747   };
70748 
70749   struct PhysicalDeviceShaderImageFootprintFeaturesNV
70750   {
70751     static const bool allowDuplicate = false;
70752     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
70753 
70754 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70755     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {}) VULKAN_HPP_NOEXCEPT
70756     : imageFootprint( imageFootprint_ )
70757     {}
70758 
70759     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70760 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70761     PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70762       : PhysicalDeviceShaderImageFootprintFeaturesNV( *reinterpret_cast<PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs ) )
70763     {}
70764 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70765 
70766     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70767 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70768     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70769     {
70770       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs );
70771       return *this;
70772     }
70773 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70774     PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70775     {
70776       pNext = pNext_;
70777       return *this;
70778     }
70779 
setImageFootprintVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70780     PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT
70781     {
70782       imageFootprint = imageFootprint_;
70783       return *this;
70784     }
70785 
70786 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70787     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
70788     {
70789       return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
70790     }
70791 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70792     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
70793     {
70794       return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
70795     }
70796 
70797 
70798 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70799     auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const& ) const = default;
70800 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70801     bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70802     {
70803       return ( sType == rhs.sType )
70804           && ( pNext == rhs.pNext )
70805           && ( imageFootprint == rhs.imageFootprint );
70806     }
70807 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70808     bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70809     {
70810       return !operator==( rhs );
70811     }
70812 #endif
70813 
70814 
70815 
70816   public:
70817     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
70818     void* pNext = {};
70819     VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {};
70820 
70821   };
70822   static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" );
70823   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageFootprintFeaturesNV>::value, "struct wrapper is not a standard layout!" );
70824 
70825   template <>
70826   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV>
70827   {
70828     using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
70829   };
70830 
70831   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
70832   {
70833     static const bool allowDuplicate = false;
70834     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70835 
70836 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70837     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {}) VULKAN_HPP_NOEXCEPT
70838     : shaderIntegerFunctions2( shaderIntegerFunctions2_ )
70839     {}
70840 
70841     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70842 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70843     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
70844       : PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( *reinterpret_cast<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs ) )
70845     {}
70846 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70847 
70848     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70849 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70850     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
70851     {
70852       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs );
70853       return *this;
70854     }
70855 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70856     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70857     {
70858       pNext = pNext_;
70859       return *this;
70860     }
70861 
setShaderIntegerFunctions2VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70862     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
70863     {
70864       shaderIntegerFunctions2 = shaderIntegerFunctions2_;
70865       return *this;
70866     }
70867 
70868 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70869     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const VULKAN_HPP_NOEXCEPT
70870     {
70871       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
70872     }
70873 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70874     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
70875     {
70876       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
70877     }
70878 
70879 
70880 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70881     auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& ) const = default;
70882 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70883     bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
70884     {
70885       return ( sType == rhs.sType )
70886           && ( pNext == rhs.pNext )
70887           && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
70888     }
70889 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70890     bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
70891     {
70892       return !operator==( rhs );
70893     }
70894 #endif
70895 
70896 
70897 
70898   public:
70899     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70900     void* pNext = {};
70901     VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {};
70902 
70903   };
70904   static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" );
70905   static_assert( std::is_standard_layout<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>::value, "struct wrapper is not a standard layout!" );
70906 
70907   template <>
70908   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
70909   {
70910     using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70911   };
70912 
70913   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
70914   {
70915     static const bool allowDuplicate = false;
70916     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
70917 
70918 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70919     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {}) VULKAN_HPP_NOEXCEPT
70920     : shaderSMBuiltins( shaderSMBuiltins_ )
70921     {}
70922 
70923     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70924 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70925     PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70926       : PhysicalDeviceShaderSMBuiltinsFeaturesNV( *reinterpret_cast<PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs ) )
70927     {}
70928 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70929 
70930     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70931 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70932     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70933     {
70934       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs );
70935       return *this;
70936     }
70937 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70938     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70939     {
70940       pNext = pNext_;
70941       return *this;
70942     }
70943 
setShaderSMBuiltinsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70944     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT
70945     {
70946       shaderSMBuiltins = shaderSMBuiltins_;
70947       return *this;
70948     }
70949 
70950 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70951     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
70952     {
70953       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
70954     }
70955 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70956     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
70957     {
70958       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
70959     }
70960 
70961 
70962 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70963     auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& ) const = default;
70964 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70965     bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70966     {
70967       return ( sType == rhs.sType )
70968           && ( pNext == rhs.pNext )
70969           && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
70970     }
70971 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70972     bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70973     {
70974       return !operator==( rhs );
70975     }
70976 #endif
70977 
70978 
70979 
70980   public:
70981     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
70982     void* pNext = {};
70983     VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {};
70984 
70985   };
70986   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" );
70987   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
70988 
70989   template <>
70990   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV>
70991   {
70992     using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
70993   };
70994 
70995   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
70996   {
70997     static const bool allowDuplicate = false;
70998     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
70999 
71000 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV71001     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV(uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}) VULKAN_HPP_NOEXCEPT
71002     : shaderSMCount( shaderSMCount_ ), shaderWarpsPerSM( shaderWarpsPerSM_ )
71003     {}
71004 
71005     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71006 
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV71007     PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71008       : PhysicalDeviceShaderSMBuiltinsPropertiesNV( *reinterpret_cast<PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs ) )
71009     {}
71010 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71011 
71012     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71013 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV71014     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71015     {
71016       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs );
71017       return *this;
71018     }
71019 
71020 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV71021     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
71022     {
71023       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
71024     }
71025 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV71026     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
71027     {
71028       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
71029     }
71030 
71031 
71032 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71033     auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& ) const = default;
71034 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV71035     bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71036     {
71037       return ( sType == rhs.sType )
71038           && ( pNext == rhs.pNext )
71039           && ( shaderSMCount == rhs.shaderSMCount )
71040           && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
71041     }
71042 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV71043     bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71044     {
71045       return !operator==( rhs );
71046     }
71047 #endif
71048 
71049 
71050 
71051   public:
71052     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
71053     void* pNext = {};
71054     uint32_t shaderSMCount = {};
71055     uint32_t shaderWarpsPerSM = {};
71056 
71057   };
71058   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" );
71059   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
71060 
71061   template <>
71062   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV>
71063   {
71064     using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
71065   };
71066 
71067   struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
71068   {
71069     static const bool allowDuplicate = false;
71070     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
71071 
71072 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71073     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}) VULKAN_HPP_NOEXCEPT
71074     : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
71075     {}
71076 
71077     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71078 
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71079     PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71080       : PhysicalDeviceShaderSubgroupExtendedTypesFeatures( *reinterpret_cast<PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs ) )
71081     {}
71082 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71083 
71084     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71085 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71086     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71087     {
71088       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs );
71089       return *this;
71090     }
71091 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71092     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71093     {
71094       pNext = pNext_;
71095       return *this;
71096     }
71097 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71098     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
71099     {
71100       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
71101       return *this;
71102     }
71103 
71104 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71105     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&() const VULKAN_HPP_NOEXCEPT
71106     {
71107       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
71108     }
71109 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71110     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
71111     {
71112       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
71113     }
71114 
71115 
71116 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71117     auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& ) const = default;
71118 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71119     bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71120     {
71121       return ( sType == rhs.sType )
71122           && ( pNext == rhs.pNext )
71123           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes );
71124     }
71125 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures71126     bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71127     {
71128       return !operator==( rhs );
71129     }
71130 #endif
71131 
71132 
71133 
71134   public:
71135     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
71136     void* pNext = {};
71137     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
71138 
71139   };
71140   static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), "struct and wrapper have different size!" );
71141   static_assert( std::is_standard_layout<PhysicalDeviceShaderSubgroupExtendedTypesFeatures>::value, "struct wrapper is not a standard layout!" );
71142 
71143   template <>
71144   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures>
71145   {
71146     using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
71147   };
71148   using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
71149 
71150   struct PhysicalDeviceShaderTerminateInvocationFeaturesKHR
71151   {
71152     static const bool allowDuplicate = false;
71153     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR;
71154 
71155 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderTerminateInvocationFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71156     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {}) VULKAN_HPP_NOEXCEPT
71157     : shaderTerminateInvocation( shaderTerminateInvocation_ )
71158     {}
71159 
71160     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71161 
PhysicalDeviceShaderTerminateInvocationFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71162     PhysicalDeviceShaderTerminateInvocationFeaturesKHR( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71163       : PhysicalDeviceShaderTerminateInvocationFeaturesKHR( *reinterpret_cast<PhysicalDeviceShaderTerminateInvocationFeaturesKHR const *>( &rhs ) )
71164     {}
71165 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71166 
71167     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71168 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71169     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71170     {
71171       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR const *>( &rhs );
71172       return *this;
71173     }
71174 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71175     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71176     {
71177       pNext = pNext_;
71178       return *this;
71179     }
71180 
setShaderTerminateInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71181     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
71182     {
71183       shaderTerminateInvocation = shaderTerminateInvocation_;
71184       return *this;
71185     }
71186 
71187 
operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71188     operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
71189     {
71190       return *reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>( this );
71191     }
71192 
operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71193     operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR &() VULKAN_HPP_NOEXCEPT
71194     {
71195       return *reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>( this );
71196     }
71197 
71198 
71199 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71200     auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& ) const = default;
71201 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71202     bool operator==( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71203     {
71204       return ( sType == rhs.sType )
71205           && ( pNext == rhs.pNext )
71206           && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation );
71207     }
71208 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR71209     bool operator!=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71210     {
71211       return !operator==( rhs );
71212     }
71213 #endif
71214 
71215 
71216 
71217   public:
71218     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR;
71219     void* pNext = {};
71220     VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
71221 
71222   };
71223   static_assert( sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR ), "struct and wrapper have different size!" );
71224   static_assert( std::is_standard_layout<PhysicalDeviceShaderTerminateInvocationFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
71225 
71226   template <>
71227   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR>
71228   {
71229     using Type = PhysicalDeviceShaderTerminateInvocationFeaturesKHR;
71230   };
71231 
71232   struct PhysicalDeviceShadingRateImageFeaturesNV
71233   {
71234     static const bool allowDuplicate = false;
71235     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
71236 
71237 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71238     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {}) VULKAN_HPP_NOEXCEPT
71239     : shadingRateImage( shadingRateImage_ ), shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
71240     {}
71241 
71242     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71243 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71244     PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71245       : PhysicalDeviceShadingRateImageFeaturesNV( *reinterpret_cast<PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs ) )
71246     {}
71247 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71248 
71249     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71250 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71251     PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71252     {
71253       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs );
71254       return *this;
71255     }
71256 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71257     PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71258     {
71259       pNext = pNext_;
71260       return *this;
71261     }
71262 
setShadingRateImageVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71263     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT
71264     {
71265       shadingRateImage = shadingRateImage_;
71266       return *this;
71267     }
71268 
setShadingRateCoarseSampleOrderVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71269     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
71270     {
71271       shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
71272       return *this;
71273     }
71274 
71275 
operator VkPhysicalDeviceShadingRateImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71276     operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
71277     {
71278       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
71279     }
71280 
operator VkPhysicalDeviceShadingRateImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71281     operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
71282     {
71283       return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
71284     }
71285 
71286 
71287 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71288     auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const& ) const = default;
71289 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71290     bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71291     {
71292       return ( sType == rhs.sType )
71293           && ( pNext == rhs.pNext )
71294           && ( shadingRateImage == rhs.shadingRateImage )
71295           && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
71296     }
71297 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71298     bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71299     {
71300       return !operator==( rhs );
71301     }
71302 #endif
71303 
71304 
71305 
71306   public:
71307     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
71308     void* pNext = {};
71309     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {};
71310     VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {};
71311 
71312   };
71313   static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" );
71314   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
71315 
71316   template <>
71317   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImageFeaturesNV>
71318   {
71319     using Type = PhysicalDeviceShadingRateImageFeaturesNV;
71320   };
71321 
71322   struct PhysicalDeviceShadingRateImagePropertiesNV
71323   {
71324     static const bool allowDuplicate = false;
71325     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
71326 
71327 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71328     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV(VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, uint32_t shadingRatePaletteSize_ = {}, uint32_t shadingRateMaxCoarseSamples_ = {}) VULKAN_HPP_NOEXCEPT
71329     : shadingRateTexelSize( shadingRateTexelSize_ ), shadingRatePaletteSize( shadingRatePaletteSize_ ), shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
71330     {}
71331 
71332     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71333 
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71334     PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71335       : PhysicalDeviceShadingRateImagePropertiesNV( *reinterpret_cast<PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs ) )
71336     {}
71337 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71338 
71339     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71340 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71341     PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71342     {
71343       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs );
71344       return *this;
71345     }
71346 
71347 
operator VkPhysicalDeviceShadingRateImagePropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71348     operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const VULKAN_HPP_NOEXCEPT
71349     {
71350       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
71351     }
71352 
operator VkPhysicalDeviceShadingRateImagePropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71353     operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
71354     {
71355       return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
71356     }
71357 
71358 
71359 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71360     auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const& ) const = default;
71361 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71362     bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71363     {
71364       return ( sType == rhs.sType )
71365           && ( pNext == rhs.pNext )
71366           && ( shadingRateTexelSize == rhs.shadingRateTexelSize )
71367           && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize )
71368           && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
71369     }
71370 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71371     bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71372     {
71373       return !operator==( rhs );
71374     }
71375 #endif
71376 
71377 
71378 
71379   public:
71380     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
71381     void* pNext = {};
71382     VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {};
71383     uint32_t shadingRatePaletteSize = {};
71384     uint32_t shadingRateMaxCoarseSamples = {};
71385 
71386   };
71387   static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" );
71388   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImagePropertiesNV>::value, "struct wrapper is not a standard layout!" );
71389 
71390   template <>
71391   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImagePropertiesNV>
71392   {
71393     using Type = PhysicalDeviceShadingRateImagePropertiesNV;
71394   };
71395 
71396   struct PhysicalDeviceSubgroupProperties
71397   {
71398     static const bool allowDuplicate = false;
71399     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties;
71400 
71401 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71402     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
71403     : subgroupSize( subgroupSize_ ), supportedStages( supportedStages_ ), supportedOperations( supportedOperations_ ), quadOperationsInAllStages( quadOperationsInAllStages_ )
71404     {}
71405 
71406     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71407 
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71408     PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71409       : PhysicalDeviceSubgroupProperties( *reinterpret_cast<PhysicalDeviceSubgroupProperties const *>( &rhs ) )
71410     {}
71411 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71412 
71413     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71414 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71415     PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71416     {
71417       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const *>( &rhs );
71418       return *this;
71419     }
71420 
71421 
operator VkPhysicalDeviceSubgroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71422     operator VkPhysicalDeviceSubgroupProperties const&() const VULKAN_HPP_NOEXCEPT
71423     {
71424       return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>( this );
71425     }
71426 
operator VkPhysicalDeviceSubgroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71427     operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
71428     {
71429       return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>( this );
71430     }
71431 
71432 
71433 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71434     auto operator<=>( PhysicalDeviceSubgroupProperties const& ) const = default;
71435 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71436     bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
71437     {
71438       return ( sType == rhs.sType )
71439           && ( pNext == rhs.pNext )
71440           && ( subgroupSize == rhs.subgroupSize )
71441           && ( supportedStages == rhs.supportedStages )
71442           && ( supportedOperations == rhs.supportedOperations )
71443           && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
71444     }
71445 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71446     bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
71447     {
71448       return !operator==( rhs );
71449     }
71450 #endif
71451 
71452 
71453 
71454   public:
71455     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
71456     void* pNext = {};
71457     uint32_t subgroupSize = {};
71458     VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {};
71459     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {};
71460     VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {};
71461 
71462   };
71463   static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" );
71464   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupProperties>::value, "struct wrapper is not a standard layout!" );
71465 
71466   template <>
71467   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupProperties>
71468   {
71469     using Type = PhysicalDeviceSubgroupProperties;
71470   };
71471 
71472   struct PhysicalDeviceSubgroupSizeControlFeaturesEXT
71473   {
71474     static const bool allowDuplicate = false;
71475     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
71476 
71477 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71478     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {}) VULKAN_HPP_NOEXCEPT
71479     : subgroupSizeControl( subgroupSizeControl_ ), computeFullSubgroups( computeFullSubgroups_ )
71480     {}
71481 
71482     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71483 
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71484     PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71485       : PhysicalDeviceSubgroupSizeControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceSubgroupSizeControlFeaturesEXT const *>( &rhs ) )
71486     {}
71487 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71488 
71489     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71490 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71491     PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71492     {
71493       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT const *>( &rhs );
71494       return *this;
71495     }
71496 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71497     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71498     {
71499       pNext = pNext_;
71500       return *this;
71501     }
71502 
setSubgroupSizeControlVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71503     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
71504     {
71505       subgroupSizeControl = subgroupSizeControl_;
71506       return *this;
71507     }
71508 
setComputeFullSubgroupsVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71509     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
71510     {
71511       computeFullSubgroups = computeFullSubgroups_;
71512       return *this;
71513     }
71514 
71515 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71516     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71517     {
71518       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
71519     }
71520 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71521     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71522     {
71523       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
71524     }
71525 
71526 
71527 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71528     auto operator<=>( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& ) const = default;
71529 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71530     bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71531     {
71532       return ( sType == rhs.sType )
71533           && ( pNext == rhs.pNext )
71534           && ( subgroupSizeControl == rhs.subgroupSizeControl )
71535           && ( computeFullSubgroups == rhs.computeFullSubgroups );
71536     }
71537 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71538     bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71539     {
71540       return !operator==( rhs );
71541     }
71542 #endif
71543 
71544 
71545 
71546   public:
71547     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
71548     void* pNext = {};
71549     VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
71550     VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
71551 
71552   };
71553   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" );
71554   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71555 
71556   template <>
71557   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT>
71558   {
71559     using Type = PhysicalDeviceSubgroupSizeControlFeaturesEXT;
71560   };
71561 
71562   struct PhysicalDeviceSubgroupSizeControlPropertiesEXT
71563   {
71564     static const bool allowDuplicate = false;
71565     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
71566 
71567 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71568     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT(uint32_t minSubgroupSize_ = {}, uint32_t maxSubgroupSize_ = {}, uint32_t maxComputeWorkgroupSubgroups_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {}) VULKAN_HPP_NOEXCEPT
71569     : minSubgroupSize( minSubgroupSize_ ), maxSubgroupSize( maxSubgroupSize_ ), maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ), requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
71570     {}
71571 
71572     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71573 
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71574     PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71575       : PhysicalDeviceSubgroupSizeControlPropertiesEXT( *reinterpret_cast<PhysicalDeviceSubgroupSizeControlPropertiesEXT const *>( &rhs ) )
71576     {}
71577 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71578 
71579     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71580 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71581     PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71582     {
71583       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT const *>( &rhs );
71584       return *this;
71585     }
71586 
71587 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71588     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71589     {
71590       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
71591     }
71592 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71593     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71594     {
71595       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
71596     }
71597 
71598 
71599 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71600     auto operator<=>( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& ) const = default;
71601 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71602     bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71603     {
71604       return ( sType == rhs.sType )
71605           && ( pNext == rhs.pNext )
71606           && ( minSubgroupSize == rhs.minSubgroupSize )
71607           && ( maxSubgroupSize == rhs.maxSubgroupSize )
71608           && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups )
71609           && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
71610     }
71611 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71612     bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71613     {
71614       return !operator==( rhs );
71615     }
71616 #endif
71617 
71618 
71619 
71620   public:
71621     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
71622     void* pNext = {};
71623     uint32_t minSubgroupSize = {};
71624     uint32_t maxSubgroupSize = {};
71625     uint32_t maxComputeWorkgroupSubgroups = {};
71626     VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
71627 
71628   };
71629   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" );
71630   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71631 
71632   template <>
71633   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT>
71634   {
71635     using Type = PhysicalDeviceSubgroupSizeControlPropertiesEXT;
71636   };
71637 
71638   struct PhysicalDeviceSynchronization2FeaturesKHR
71639   {
71640     static const bool allowDuplicate = false;
71641     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSynchronization2FeaturesKHR;
71642 
71643 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSynchronization2FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71644     VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2FeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {}) VULKAN_HPP_NOEXCEPT
71645     : synchronization2( synchronization2_ )
71646     {}
71647 
71648     VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2FeaturesKHR( PhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71649 
PhysicalDeviceSynchronization2FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71650     PhysicalDeviceSynchronization2FeaturesKHR( VkPhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71651       : PhysicalDeviceSynchronization2FeaturesKHR( *reinterpret_cast<PhysicalDeviceSynchronization2FeaturesKHR const *>( &rhs ) )
71652     {}
71653 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71654 
71655     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2FeaturesKHR & operator=( PhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71656 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71657     PhysicalDeviceSynchronization2FeaturesKHR & operator=( VkPhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71658     {
71659       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR const *>( &rhs );
71660       return *this;
71661     }
71662 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71663     PhysicalDeviceSynchronization2FeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71664     {
71665       pNext = pNext_;
71666       return *this;
71667     }
71668 
setSynchronization2VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71669     PhysicalDeviceSynchronization2FeaturesKHR & setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT
71670     {
71671       synchronization2 = synchronization2_;
71672       return *this;
71673     }
71674 
71675 
operator VkPhysicalDeviceSynchronization2FeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71676     operator VkPhysicalDeviceSynchronization2FeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
71677     {
71678       return *reinterpret_cast<const VkPhysicalDeviceSynchronization2FeaturesKHR*>( this );
71679     }
71680 
operator VkPhysicalDeviceSynchronization2FeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71681     operator VkPhysicalDeviceSynchronization2FeaturesKHR &() VULKAN_HPP_NOEXCEPT
71682     {
71683       return *reinterpret_cast<VkPhysicalDeviceSynchronization2FeaturesKHR*>( this );
71684     }
71685 
71686 
71687 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71688     auto operator<=>( PhysicalDeviceSynchronization2FeaturesKHR const& ) const = default;
71689 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71690     bool operator==( PhysicalDeviceSynchronization2FeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71691     {
71692       return ( sType == rhs.sType )
71693           && ( pNext == rhs.pNext )
71694           && ( synchronization2 == rhs.synchronization2 );
71695     }
71696 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR71697     bool operator!=( PhysicalDeviceSynchronization2FeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
71698     {
71699       return !operator==( rhs );
71700     }
71701 #endif
71702 
71703 
71704 
71705   public:
71706     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSynchronization2FeaturesKHR;
71707     void* pNext = {};
71708     VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {};
71709 
71710   };
71711   static_assert( sizeof( PhysicalDeviceSynchronization2FeaturesKHR ) == sizeof( VkPhysicalDeviceSynchronization2FeaturesKHR ), "struct and wrapper have different size!" );
71712   static_assert( std::is_standard_layout<PhysicalDeviceSynchronization2FeaturesKHR>::value, "struct wrapper is not a standard layout!" );
71713 
71714   template <>
71715   struct CppType<StructureType, StructureType::ePhysicalDeviceSynchronization2FeaturesKHR>
71716   {
71717     using Type = PhysicalDeviceSynchronization2FeaturesKHR;
71718   };
71719 
71720   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
71721   {
71722     static const bool allowDuplicate = false;
71723     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
71724 
71725 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71726     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {}) VULKAN_HPP_NOEXCEPT
71727     : texelBufferAlignment( texelBufferAlignment_ )
71728     {}
71729 
71730     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71731 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71732     PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71733       : PhysicalDeviceTexelBufferAlignmentFeaturesEXT( *reinterpret_cast<PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs ) )
71734     {}
71735 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71736 
71737     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71738 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71739     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71740     {
71741       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs );
71742       return *this;
71743     }
71744 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71745     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71746     {
71747       pNext = pNext_;
71748       return *this;
71749     }
71750 
setTexelBufferAlignmentVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71751     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
71752     {
71753       texelBufferAlignment = texelBufferAlignment_;
71754       return *this;
71755     }
71756 
71757 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71758     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71759     {
71760       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
71761     }
71762 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71763     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71764     {
71765       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
71766     }
71767 
71768 
71769 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71770     auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& ) const = default;
71771 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71772     bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71773     {
71774       return ( sType == rhs.sType )
71775           && ( pNext == rhs.pNext )
71776           && ( texelBufferAlignment == rhs.texelBufferAlignment );
71777     }
71778 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71779     bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71780     {
71781       return !operator==( rhs );
71782     }
71783 #endif
71784 
71785 
71786 
71787   public:
71788     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
71789     void* pNext = {};
71790     VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {};
71791 
71792   };
71793   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" );
71794   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71795 
71796   template <>
71797   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT>
71798   {
71799     using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
71800   };
71801 
71802   struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT
71803   {
71804     static const bool allowDuplicate = false;
71805     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71806 
71807 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71808     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
71809     : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ), storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ), uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ), uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
71810     {}
71811 
71812     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71813 
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71814     PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71815       : PhysicalDeviceTexelBufferAlignmentPropertiesEXT( *reinterpret_cast<PhysicalDeviceTexelBufferAlignmentPropertiesEXT const *>( &rhs ) )
71816     {}
71817 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71818 
71819     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71820 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71821     PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71822     {
71823       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT const *>( &rhs );
71824       return *this;
71825     }
71826 
71827 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71828     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71829     {
71830       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
71831     }
71832 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71833     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71834     {
71835       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
71836     }
71837 
71838 
71839 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71840     auto operator<=>( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& ) const = default;
71841 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71842     bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71843     {
71844       return ( sType == rhs.sType )
71845           && ( pNext == rhs.pNext )
71846           && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
71847           && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
71848           && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
71849           && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
71850     }
71851 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71852     bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71853     {
71854       return !operator==( rhs );
71855     }
71856 #endif
71857 
71858 
71859 
71860   public:
71861     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71862     void* pNext = {};
71863     VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
71864     VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
71865     VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
71866     VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
71867 
71868   };
71869   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" );
71870   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71871 
71872   template <>
71873   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT>
71874   {
71875     using Type = PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71876   };
71877 
71878   struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
71879   {
71880     static const bool allowDuplicate = false;
71881     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
71882 
71883 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71884     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {}) VULKAN_HPP_NOEXCEPT
71885     : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
71886     {}
71887 
71888     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71889 
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71890     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71891       : PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( *reinterpret_cast<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const *>( &rhs ) )
71892     {}
71893 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71894 
71895     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71896 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71897     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71898     {
71899       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const *>( &rhs );
71900       return *this;
71901     }
71902 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71903     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71904     {
71905       pNext = pNext_;
71906       return *this;
71907     }
71908 
setTextureCompressionASTC_HDRVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71909     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
71910     {
71911       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
71912       return *this;
71913     }
71914 
71915 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71916     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71917     {
71918       return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
71919     }
71920 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71921     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71922     {
71923       return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
71924     }
71925 
71926 
71927 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71928     auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& ) const = default;
71929 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71930     bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71931     {
71932       return ( sType == rhs.sType )
71933           && ( pNext == rhs.pNext )
71934           && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
71935     }
71936 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71937     bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71938     {
71939       return !operator==( rhs );
71940     }
71941 #endif
71942 
71943 
71944 
71945   public:
71946     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
71947     void* pNext = {};
71948     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
71949 
71950   };
71951   static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" );
71952   static_assert( std::is_standard_layout<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71953 
71954   template <>
71955   struct CppType<StructureType, StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT>
71956   {
71957     using Type = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
71958   };
71959 
71960   struct PhysicalDeviceTimelineSemaphoreFeatures
71961   {
71962     static const bool allowDuplicate = false;
71963     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
71964 
71965 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71966     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures(VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}) VULKAN_HPP_NOEXCEPT
71967     : timelineSemaphore( timelineSemaphore_ )
71968     {}
71969 
71970     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71971 
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71972     PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71973       : PhysicalDeviceTimelineSemaphoreFeatures( *reinterpret_cast<PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs ) )
71974     {}
71975 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71976 
71977     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71978 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71979     PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71980     {
71981       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs );
71982       return *this;
71983     }
71984 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71985     PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71986     {
71987       pNext = pNext_;
71988       return *this;
71989     }
71990 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71991     PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
71992     {
71993       timelineSemaphore = timelineSemaphore_;
71994       return *this;
71995     }
71996 
71997 
operator VkPhysicalDeviceTimelineSemaphoreFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71998     operator VkPhysicalDeviceTimelineSemaphoreFeatures const&() const VULKAN_HPP_NOEXCEPT
71999     {
72000       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
72001     }
72002 
operator VkPhysicalDeviceTimelineSemaphoreFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures72003     operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
72004     {
72005       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
72006     }
72007 
72008 
72009 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72010     auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const& ) const = default;
72011 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures72012     bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72013     {
72014       return ( sType == rhs.sType )
72015           && ( pNext == rhs.pNext )
72016           && ( timelineSemaphore == rhs.timelineSemaphore );
72017     }
72018 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures72019     bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72020     {
72021       return !operator==( rhs );
72022     }
72023 #endif
72024 
72025 
72026 
72027   public:
72028     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
72029     void* pNext = {};
72030     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
72031 
72032   };
72033   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), "struct and wrapper have different size!" );
72034   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreFeatures>::value, "struct wrapper is not a standard layout!" );
72035 
72036   template <>
72037   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreFeatures>
72038   {
72039     using Type = PhysicalDeviceTimelineSemaphoreFeatures;
72040   };
72041   using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
72042 
72043   struct PhysicalDeviceTimelineSemaphoreProperties
72044   {
72045     static const bool allowDuplicate = false;
72046     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
72047 
72048 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties72049     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties(uint64_t maxTimelineSemaphoreValueDifference_ = {}) VULKAN_HPP_NOEXCEPT
72050     : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
72051     {}
72052 
72053     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72054 
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties72055     PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
72056       : PhysicalDeviceTimelineSemaphoreProperties( *reinterpret_cast<PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs ) )
72057     {}
72058 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72059 
72060     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72061 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties72062     PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
72063     {
72064       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs );
72065       return *this;
72066     }
72067 
72068 
operator VkPhysicalDeviceTimelineSemaphoreProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties72069     operator VkPhysicalDeviceTimelineSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
72070     {
72071       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
72072     }
72073 
operator VkPhysicalDeviceTimelineSemaphoreProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties72074     operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
72075     {
72076       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
72077     }
72078 
72079 
72080 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72081     auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const& ) const = default;
72082 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties72083     bool operator==( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
72084     {
72085       return ( sType == rhs.sType )
72086           && ( pNext == rhs.pNext )
72087           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference );
72088     }
72089 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties72090     bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
72091     {
72092       return !operator==( rhs );
72093     }
72094 #endif
72095 
72096 
72097 
72098   public:
72099     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
72100     void* pNext = {};
72101     uint64_t maxTimelineSemaphoreValueDifference = {};
72102 
72103   };
72104   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), "struct and wrapper have different size!" );
72105   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
72106 
72107   template <>
72108   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreProperties>
72109   {
72110     using Type = PhysicalDeviceTimelineSemaphoreProperties;
72111   };
72112   using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
72113 
72114   struct PhysicalDeviceTransformFeedbackFeaturesEXT
72115   {
72116     static const bool allowDuplicate = false;
72117     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
72118 
72119 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72120     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {}) VULKAN_HPP_NOEXCEPT
72121     : transformFeedback( transformFeedback_ ), geometryStreams( geometryStreams_ )
72122     {}
72123 
72124     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72125 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72126     PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72127       : PhysicalDeviceTransformFeedbackFeaturesEXT( *reinterpret_cast<PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs ) )
72128     {}
72129 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72130 
72131     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72132 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72133     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72134     {
72135       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs );
72136       return *this;
72137     }
72138 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72139     PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72140     {
72141       pNext = pNext_;
72142       return *this;
72143     }
72144 
setTransformFeedbackVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72145     PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
72146     {
72147       transformFeedback = transformFeedback_;
72148       return *this;
72149     }
72150 
setGeometryStreamsVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72151     PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT
72152     {
72153       geometryStreams = geometryStreams_;
72154       return *this;
72155     }
72156 
72157 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72158     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
72159     {
72160       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
72161     }
72162 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72163     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
72164     {
72165       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
72166     }
72167 
72168 
72169 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72170     auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const& ) const = default;
72171 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72172     bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72173     {
72174       return ( sType == rhs.sType )
72175           && ( pNext == rhs.pNext )
72176           && ( transformFeedback == rhs.transformFeedback )
72177           && ( geometryStreams == rhs.geometryStreams );
72178     }
72179 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT72180     bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72181     {
72182       return !operator==( rhs );
72183     }
72184 #endif
72185 
72186 
72187 
72188   public:
72189     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
72190     void* pNext = {};
72191     VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {};
72192     VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {};
72193 
72194   };
72195   static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" );
72196   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
72197 
72198   template <>
72199   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT>
72200   {
72201     using Type = PhysicalDeviceTransformFeedbackFeaturesEXT;
72202   };
72203 
72204   struct PhysicalDeviceTransformFeedbackPropertiesEXT
72205   {
72206     static const bool allowDuplicate = false;
72207     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
72208 
72209 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT72210     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
72211     : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ), maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ), maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ), maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ), maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ), maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ), transformFeedbackQueries( transformFeedbackQueries_ ), transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ), transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ), transformFeedbackDraw( transformFeedbackDraw_ )
72212     {}
72213 
72214     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72215 
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT72216     PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72217       : PhysicalDeviceTransformFeedbackPropertiesEXT( *reinterpret_cast<PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs ) )
72218     {}
72219 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72220 
72221     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72222 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT72223     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72224     {
72225       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs );
72226       return *this;
72227     }
72228 
72229 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT72230     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
72231     {
72232       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
72233     }
72234 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT72235     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
72236     {
72237       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
72238     }
72239 
72240 
72241 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72242     auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const& ) const = default;
72243 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT72244     bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72245     {
72246       return ( sType == rhs.sType )
72247           && ( pNext == rhs.pNext )
72248           && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams )
72249           && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers )
72250           && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize )
72251           && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize )
72252           && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize )
72253           && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride )
72254           && ( transformFeedbackQueries == rhs.transformFeedbackQueries )
72255           && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles )
72256           && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect )
72257           && ( transformFeedbackDraw == rhs.transformFeedbackDraw );
72258     }
72259 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT72260     bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72261     {
72262       return !operator==( rhs );
72263     }
72264 #endif
72265 
72266 
72267 
72268   public:
72269     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
72270     void* pNext = {};
72271     uint32_t maxTransformFeedbackStreams = {};
72272     uint32_t maxTransformFeedbackBuffers = {};
72273     VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {};
72274     uint32_t maxTransformFeedbackStreamDataSize = {};
72275     uint32_t maxTransformFeedbackBufferDataSize = {};
72276     uint32_t maxTransformFeedbackBufferDataStride = {};
72277     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {};
72278     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {};
72279     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {};
72280     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {};
72281 
72282   };
72283   static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" );
72284   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
72285 
72286   template <>
72287   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT>
72288   {
72289     using Type = PhysicalDeviceTransformFeedbackPropertiesEXT;
72290   };
72291 
72292   struct PhysicalDeviceUniformBufferStandardLayoutFeatures
72293   {
72294     static const bool allowDuplicate = false;
72295     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
72296 
72297 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72298     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}) VULKAN_HPP_NOEXCEPT
72299     : uniformBufferStandardLayout( uniformBufferStandardLayout_ )
72300     {}
72301 
72302     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72303 
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72304     PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72305       : PhysicalDeviceUniformBufferStandardLayoutFeatures( *reinterpret_cast<PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs ) )
72306     {}
72307 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72308 
72309     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72310 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72311     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72312     {
72313       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs );
72314       return *this;
72315     }
72316 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72317     PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72318     {
72319       pNext = pNext_;
72320       return *this;
72321     }
72322 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72323     PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
72324     {
72325       uniformBufferStandardLayout = uniformBufferStandardLayout_;
72326       return *this;
72327     }
72328 
72329 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72330     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
72331     {
72332       return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
72333     }
72334 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72335     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
72336     {
72337       return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
72338     }
72339 
72340 
72341 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72342     auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const& ) const = default;
72343 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72344     bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72345     {
72346       return ( sType == rhs.sType )
72347           && ( pNext == rhs.pNext )
72348           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
72349     }
72350 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72351     bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72352     {
72353       return !operator==( rhs );
72354     }
72355 #endif
72356 
72357 
72358 
72359   public:
72360     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
72361     void* pNext = {};
72362     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
72363 
72364   };
72365   static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), "struct and wrapper have different size!" );
72366   static_assert( std::is_standard_layout<PhysicalDeviceUniformBufferStandardLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
72367 
72368   template <>
72369   struct CppType<StructureType, StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures>
72370   {
72371     using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
72372   };
72373   using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
72374 
72375   struct PhysicalDeviceVariablePointersFeatures
72376   {
72377     static const bool allowDuplicate = false;
72378     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures;
72379 
72380 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72381     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures(VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}) VULKAN_HPP_NOEXCEPT
72382     : variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ )
72383     {}
72384 
72385     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72386 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72387     PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72388       : PhysicalDeviceVariablePointersFeatures( *reinterpret_cast<PhysicalDeviceVariablePointersFeatures const *>( &rhs ) )
72389     {}
72390 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72391 
72392     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72393 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72394     PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72395     {
72396       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const *>( &rhs );
72397       return *this;
72398     }
72399 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72400     PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72401     {
72402       pNext = pNext_;
72403       return *this;
72404     }
72405 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72406     PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
72407     {
72408       variablePointersStorageBuffer = variablePointersStorageBuffer_;
72409       return *this;
72410     }
72411 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72412     PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
72413     {
72414       variablePointers = variablePointers_;
72415       return *this;
72416     }
72417 
72418 
operator VkPhysicalDeviceVariablePointersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72419     operator VkPhysicalDeviceVariablePointersFeatures const&() const VULKAN_HPP_NOEXCEPT
72420     {
72421       return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>( this );
72422     }
72423 
operator VkPhysicalDeviceVariablePointersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72424     operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
72425     {
72426       return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>( this );
72427     }
72428 
72429 
72430 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72431     auto operator<=>( PhysicalDeviceVariablePointersFeatures const& ) const = default;
72432 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72433     bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72434     {
72435       return ( sType == rhs.sType )
72436           && ( pNext == rhs.pNext )
72437           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
72438           && ( variablePointers == rhs.variablePointers );
72439     }
72440 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72441     bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72442     {
72443       return !operator==( rhs );
72444     }
72445 #endif
72446 
72447 
72448 
72449   public:
72450     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
72451     void* pNext = {};
72452     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
72453     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
72454 
72455   };
72456   static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" );
72457   static_assert( std::is_standard_layout<PhysicalDeviceVariablePointersFeatures>::value, "struct wrapper is not a standard layout!" );
72458 
72459   template <>
72460   struct CppType<StructureType, StructureType::ePhysicalDeviceVariablePointersFeatures>
72461   {
72462     using Type = PhysicalDeviceVariablePointersFeatures;
72463   };
72464   using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
72465   using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
72466   using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
72467 
72468   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
72469   {
72470     static const bool allowDuplicate = false;
72471     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
72472 
72473 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72474     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {}) VULKAN_HPP_NOEXCEPT
72475     : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ), vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
72476     {}
72477 
72478     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72479 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72480     PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72481       : PhysicalDeviceVertexAttributeDivisorFeaturesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs ) )
72482     {}
72483 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72484 
72485     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72486 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72487     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72488     {
72489       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs );
72490       return *this;
72491     }
72492 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72493     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72494     {
72495       pNext = pNext_;
72496       return *this;
72497     }
72498 
setVertexAttributeInstanceRateDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72499     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
72500     {
72501       vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
72502       return *this;
72503     }
72504 
setVertexAttributeInstanceRateZeroDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72505     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
72506     {
72507       vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
72508       return *this;
72509     }
72510 
72511 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72512     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
72513     {
72514       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
72515     }
72516 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72517     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
72518     {
72519       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
72520     }
72521 
72522 
72523 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72524     auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& ) const = default;
72525 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72526     bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72527     {
72528       return ( sType == rhs.sType )
72529           && ( pNext == rhs.pNext )
72530           && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor )
72531           && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
72532     }
72533 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72534     bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72535     {
72536       return !operator==( rhs );
72537     }
72538 #endif
72539 
72540 
72541 
72542   public:
72543     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
72544     void* pNext = {};
72545     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {};
72546     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {};
72547 
72548   };
72549   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" );
72550   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
72551 
72552   template <>
72553   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
72554   {
72555     using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
72556   };
72557 
72558   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
72559   {
72560     static const bool allowDuplicate = false;
72561     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
72562 
72563 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72564     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t maxVertexAttribDivisor_ = {}) VULKAN_HPP_NOEXCEPT
72565     : maxVertexAttribDivisor( maxVertexAttribDivisor_ )
72566     {}
72567 
72568     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72569 
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72570     PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72571       : PhysicalDeviceVertexAttributeDivisorPropertiesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs ) )
72572     {}
72573 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72574 
72575     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72576 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72577     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72578     {
72579       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs );
72580       return *this;
72581     }
72582 
72583 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72584     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
72585     {
72586       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
72587     }
72588 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72589     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
72590     {
72591       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
72592     }
72593 
72594 
72595 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72596     auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& ) const = default;
72597 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72598     bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72599     {
72600       return ( sType == rhs.sType )
72601           && ( pNext == rhs.pNext )
72602           && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
72603     }
72604 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72605     bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72606     {
72607       return !operator==( rhs );
72608     }
72609 #endif
72610 
72611 
72612 
72613   public:
72614     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
72615     void* pNext = {};
72616     uint32_t maxVertexAttribDivisor = {};
72617 
72618   };
72619   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" );
72620   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
72621 
72622   template <>
72623   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT>
72624   {
72625     using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
72626   };
72627 
72628   struct PhysicalDeviceVulkan11Features
72629   {
72630     static const bool allowDuplicate = false;
72631     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features;
72632 
72633 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72634     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
72635     : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ), multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ), variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ), protectedMemory( protectedMemory_ ), samplerYcbcrConversion( samplerYcbcrConversion_ ), shaderDrawParameters( shaderDrawParameters_ )
72636     {}
72637 
72638     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72639 
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72640     PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
72641       : PhysicalDeviceVulkan11Features( *reinterpret_cast<PhysicalDeviceVulkan11Features const *>( &rhs ) )
72642     {}
72643 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72644 
72645     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72646 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72647     PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
72648     {
72649       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const *>( &rhs );
72650       return *this;
72651     }
72652 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72653     PhysicalDeviceVulkan11Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72654     {
72655       pNext = pNext_;
72656       return *this;
72657     }
72658 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72659     PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
72660     {
72661       storageBuffer16BitAccess = storageBuffer16BitAccess_;
72662       return *this;
72663     }
72664 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72665     PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
72666     {
72667       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
72668       return *this;
72669     }
72670 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72671     PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
72672     {
72673       storagePushConstant16 = storagePushConstant16_;
72674       return *this;
72675     }
72676 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72677     PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
72678     {
72679       storageInputOutput16 = storageInputOutput16_;
72680       return *this;
72681     }
72682 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72683     PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
72684     {
72685       multiview = multiview_;
72686       return *this;
72687     }
72688 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72689     PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
72690     {
72691       multiviewGeometryShader = multiviewGeometryShader_;
72692       return *this;
72693     }
72694 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72695     PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
72696     {
72697       multiviewTessellationShader = multiviewTessellationShader_;
72698       return *this;
72699     }
72700 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72701     PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
72702     {
72703       variablePointersStorageBuffer = variablePointersStorageBuffer_;
72704       return *this;
72705     }
72706 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72707     PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
72708     {
72709       variablePointers = variablePointers_;
72710       return *this;
72711     }
72712 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72713     PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
72714     {
72715       protectedMemory = protectedMemory_;
72716       return *this;
72717     }
72718 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72719     PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
72720     {
72721       samplerYcbcrConversion = samplerYcbcrConversion_;
72722       return *this;
72723     }
72724 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72725     PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
72726     {
72727       shaderDrawParameters = shaderDrawParameters_;
72728       return *this;
72729     }
72730 
72731 
operator VkPhysicalDeviceVulkan11Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72732     operator VkPhysicalDeviceVulkan11Features const&() const VULKAN_HPP_NOEXCEPT
72733     {
72734       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>( this );
72735     }
72736 
operator VkPhysicalDeviceVulkan11Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72737     operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
72738     {
72739       return *reinterpret_cast<VkPhysicalDeviceVulkan11Features*>( this );
72740     }
72741 
72742 
72743 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72744     auto operator<=>( PhysicalDeviceVulkan11Features const& ) const = default;
72745 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72746     bool operator==( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72747     {
72748       return ( sType == rhs.sType )
72749           && ( pNext == rhs.pNext )
72750           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
72751           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
72752           && ( storagePushConstant16 == rhs.storagePushConstant16 )
72753           && ( storageInputOutput16 == rhs.storageInputOutput16 )
72754           && ( multiview == rhs.multiview )
72755           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
72756           && ( multiviewTessellationShader == rhs.multiviewTessellationShader )
72757           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
72758           && ( variablePointers == rhs.variablePointers )
72759           && ( protectedMemory == rhs.protectedMemory )
72760           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion )
72761           && ( shaderDrawParameters == rhs.shaderDrawParameters );
72762     }
72763 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72764     bool operator!=( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72765     {
72766       return !operator==( rhs );
72767     }
72768 #endif
72769 
72770 
72771 
72772   public:
72773     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features;
72774     void* pNext = {};
72775     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
72776     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
72777     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
72778     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
72779     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
72780     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
72781     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
72782     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
72783     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
72784     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
72785     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
72786     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
72787 
72788   };
72789   static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), "struct and wrapper have different size!" );
72790   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Features>::value, "struct wrapper is not a standard layout!" );
72791 
72792   template <>
72793   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Features>
72794   {
72795     using Type = PhysicalDeviceVulkan11Features;
72796   };
72797 
72798   struct PhysicalDeviceVulkan11Properties
72799   {
72800     static const bool allowDuplicate = false;
72801     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties;
72802 
72803 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72804     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
72805     : 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_ )
72806     {}
72807 
72808     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72809 
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72810     PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72811       : PhysicalDeviceVulkan11Properties( *reinterpret_cast<PhysicalDeviceVulkan11Properties const *>( &rhs ) )
72812     {}
72813 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72814 
72815     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72816 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72817     PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72818     {
72819       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const *>( &rhs );
72820       return *this;
72821     }
72822 
72823 
operator VkPhysicalDeviceVulkan11Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72824     operator VkPhysicalDeviceVulkan11Properties const&() const VULKAN_HPP_NOEXCEPT
72825     {
72826       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>( this );
72827     }
72828 
operator VkPhysicalDeviceVulkan11Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72829     operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
72830     {
72831       return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>( this );
72832     }
72833 
72834 
72835 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72836     auto operator<=>( PhysicalDeviceVulkan11Properties const& ) const = default;
72837 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72838     bool operator==( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72839     {
72840       return ( sType == rhs.sType )
72841           && ( pNext == rhs.pNext )
72842           && ( deviceUUID == rhs.deviceUUID )
72843           && ( driverUUID == rhs.driverUUID )
72844           && ( deviceLUID == rhs.deviceLUID )
72845           && ( deviceNodeMask == rhs.deviceNodeMask )
72846           && ( deviceLUIDValid == rhs.deviceLUIDValid )
72847           && ( subgroupSize == rhs.subgroupSize )
72848           && ( subgroupSupportedStages == rhs.subgroupSupportedStages )
72849           && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations )
72850           && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages )
72851           && ( pointClippingBehavior == rhs.pointClippingBehavior )
72852           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
72853           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex )
72854           && ( protectedNoFault == rhs.protectedNoFault )
72855           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
72856           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
72857     }
72858 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72859     bool operator!=( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72860     {
72861       return !operator==( rhs );
72862     }
72863 #endif
72864 
72865 
72866 
72867   public:
72868     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties;
72869     void* pNext = {};
72870     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
72871     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
72872     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
72873     uint32_t deviceNodeMask = {};
72874     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
72875     uint32_t subgroupSize = {};
72876     VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {};
72877     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {};
72878     VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {};
72879     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
72880     uint32_t maxMultiviewViewCount = {};
72881     uint32_t maxMultiviewInstanceIndex = {};
72882     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
72883     uint32_t maxPerSetDescriptors = {};
72884     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
72885 
72886   };
72887   static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), "struct and wrapper have different size!" );
72888   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Properties>::value, "struct wrapper is not a standard layout!" );
72889 
72890   template <>
72891   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Properties>
72892   {
72893     using Type = PhysicalDeviceVulkan11Properties;
72894   };
72895 
72896   struct PhysicalDeviceVulkan12Features
72897   {
72898     static const bool allowDuplicate = false;
72899     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features;
72900 
72901 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72902     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
72903     : 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_ )
72904     {}
72905 
72906     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72907 
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72908     PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
72909       : PhysicalDeviceVulkan12Features( *reinterpret_cast<PhysicalDeviceVulkan12Features const *>( &rhs ) )
72910     {}
72911 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72912 
72913     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72914 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72915     PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
72916     {
72917       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const *>( &rhs );
72918       return *this;
72919     }
72920 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72921     PhysicalDeviceVulkan12Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72922     {
72923       pNext = pNext_;
72924       return *this;
72925     }
72926 
setSamplerMirrorClampToEdgeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72927     PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
72928     {
72929       samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
72930       return *this;
72931     }
72932 
setDrawIndirectCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72933     PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT
72934     {
72935       drawIndirectCount = drawIndirectCount_;
72936       return *this;
72937     }
72938 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72939     PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
72940     {
72941       storageBuffer8BitAccess = storageBuffer8BitAccess_;
72942       return *this;
72943     }
72944 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72945     PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
72946     {
72947       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
72948       return *this;
72949     }
72950 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72951     PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
72952     {
72953       storagePushConstant8 = storagePushConstant8_;
72954       return *this;
72955     }
72956 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72957     PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
72958     {
72959       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
72960       return *this;
72961     }
72962 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72963     PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
72964     {
72965       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
72966       return *this;
72967     }
72968 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72969     PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
72970     {
72971       shaderFloat16 = shaderFloat16_;
72972       return *this;
72973     }
72974 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72975     PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
72976     {
72977       shaderInt8 = shaderInt8_;
72978       return *this;
72979     }
72980 
setDescriptorIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72981     PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT
72982     {
72983       descriptorIndexing = descriptorIndexing_;
72984       return *this;
72985     }
72986 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72987     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
72988     {
72989       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
72990       return *this;
72991     }
72992 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72993     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
72994     {
72995       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
72996       return *this;
72997     }
72998 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72999     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
73000     {
73001       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
73002       return *this;
73003     }
73004 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73005     PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
73006     {
73007       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
73008       return *this;
73009     }
73010 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73011     PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
73012     {
73013       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
73014       return *this;
73015     }
73016 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73017     PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
73018     {
73019       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
73020       return *this;
73021     }
73022 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73023     PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
73024     {
73025       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
73026       return *this;
73027     }
73028 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73029     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
73030     {
73031       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
73032       return *this;
73033     }
73034 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73035     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
73036     {
73037       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
73038       return *this;
73039     }
73040 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73041     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
73042     {
73043       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
73044       return *this;
73045     }
73046 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73047     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
73048     {
73049       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
73050       return *this;
73051     }
73052 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73053     PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
73054     {
73055       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
73056       return *this;
73057     }
73058 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73059     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
73060     {
73061       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
73062       return *this;
73063     }
73064 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73065     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
73066     {
73067       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
73068       return *this;
73069     }
73070 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73071     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
73072     {
73073       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
73074       return *this;
73075     }
73076 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73077     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
73078     {
73079       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
73080       return *this;
73081     }
73082 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73083     PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
73084     {
73085       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
73086       return *this;
73087     }
73088 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73089     PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
73090     {
73091       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
73092       return *this;
73093     }
73094 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73095     PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
73096     {
73097       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
73098       return *this;
73099     }
73100 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73101     PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
73102     {
73103       runtimeDescriptorArray = runtimeDescriptorArray_;
73104       return *this;
73105     }
73106 
setSamplerFilterMinmaxVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73107     PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT
73108     {
73109       samplerFilterMinmax = samplerFilterMinmax_;
73110       return *this;
73111     }
73112 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73113     PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
73114     {
73115       scalarBlockLayout = scalarBlockLayout_;
73116       return *this;
73117     }
73118 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73119     PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
73120     {
73121       imagelessFramebuffer = imagelessFramebuffer_;
73122       return *this;
73123     }
73124 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73125     PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
73126     {
73127       uniformBufferStandardLayout = uniformBufferStandardLayout_;
73128       return *this;
73129     }
73130 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73131     PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
73132     {
73133       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
73134       return *this;
73135     }
73136 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73137     PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
73138     {
73139       separateDepthStencilLayouts = separateDepthStencilLayouts_;
73140       return *this;
73141     }
73142 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73143     PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
73144     {
73145       hostQueryReset = hostQueryReset_;
73146       return *this;
73147     }
73148 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73149     PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
73150     {
73151       timelineSemaphore = timelineSemaphore_;
73152       return *this;
73153     }
73154 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73155     PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
73156     {
73157       bufferDeviceAddress = bufferDeviceAddress_;
73158       return *this;
73159     }
73160 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73161     PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
73162     {
73163       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
73164       return *this;
73165     }
73166 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73167     PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
73168     {
73169       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
73170       return *this;
73171     }
73172 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73173     PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
73174     {
73175       vulkanMemoryModel = vulkanMemoryModel_;
73176       return *this;
73177     }
73178 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73179     PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
73180     {
73181       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
73182       return *this;
73183     }
73184 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73185     PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
73186     {
73187       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
73188       return *this;
73189     }
73190 
setShaderOutputViewportIndexVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73191     PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
73192     {
73193       shaderOutputViewportIndex = shaderOutputViewportIndex_;
73194       return *this;
73195     }
73196 
setShaderOutputLayerVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73197     PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT
73198     {
73199       shaderOutputLayer = shaderOutputLayer_;
73200       return *this;
73201     }
73202 
setSubgroupBroadcastDynamicIdVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73203     PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
73204     {
73205       subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
73206       return *this;
73207     }
73208 
73209 
operator VkPhysicalDeviceVulkan12Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73210     operator VkPhysicalDeviceVulkan12Features const&() const VULKAN_HPP_NOEXCEPT
73211     {
73212       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>( this );
73213     }
73214 
operator VkPhysicalDeviceVulkan12Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73215     operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
73216     {
73217       return *reinterpret_cast<VkPhysicalDeviceVulkan12Features*>( this );
73218     }
73219 
73220 
73221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73222     auto operator<=>( PhysicalDeviceVulkan12Features const& ) const = default;
73223 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73224     bool operator==( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
73225     {
73226       return ( sType == rhs.sType )
73227           && ( pNext == rhs.pNext )
73228           && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge )
73229           && ( drawIndirectCount == rhs.drawIndirectCount )
73230           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
73231           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
73232           && ( storagePushConstant8 == rhs.storagePushConstant8 )
73233           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
73234           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics )
73235           && ( shaderFloat16 == rhs.shaderFloat16 )
73236           && ( shaderInt8 == rhs.shaderInt8 )
73237           && ( descriptorIndexing == rhs.descriptorIndexing )
73238           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
73239           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
73240           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
73241           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
73242           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
73243           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
73244           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
73245           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
73246           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
73247           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
73248           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
73249           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
73250           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
73251           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
73252           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
73253           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
73254           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
73255           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
73256           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
73257           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray )
73258           && ( samplerFilterMinmax == rhs.samplerFilterMinmax )
73259           && ( scalarBlockLayout == rhs.scalarBlockLayout )
73260           && ( imagelessFramebuffer == rhs.imagelessFramebuffer )
73261           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout )
73262           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes )
73263           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts )
73264           && ( hostQueryReset == rhs.hostQueryReset )
73265           && ( timelineSemaphore == rhs.timelineSemaphore )
73266           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
73267           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
73268           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice )
73269           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
73270           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
73271           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains )
73272           && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex )
73273           && ( shaderOutputLayer == rhs.shaderOutputLayer )
73274           && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId );
73275     }
73276 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73277     bool operator!=( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
73278     {
73279       return !operator==( rhs );
73280     }
73281 #endif
73282 
73283 
73284 
73285   public:
73286     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features;
73287     void* pNext = {};
73288     VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {};
73289     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {};
73290     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
73291     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
73292     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
73293     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
73294     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
73295     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
73296     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
73297     VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {};
73298     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
73299     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
73300     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
73301     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
73302     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
73303     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
73304     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
73305     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
73306     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
73307     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
73308     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
73309     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
73310     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
73311     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
73312     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
73313     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
73314     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
73315     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
73316     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
73317     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
73318     VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {};
73319     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
73320     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
73321     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
73322     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
73323     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
73324     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
73325     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
73326     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
73327     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
73328     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
73329     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
73330     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
73331     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
73332     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {};
73333     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {};
73334     VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {};
73335 
73336   };
73337   static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), "struct and wrapper have different size!" );
73338   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Features>::value, "struct wrapper is not a standard layout!" );
73339 
73340   template <>
73341   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Features>
73342   {
73343     using Type = PhysicalDeviceVulkan12Features;
73344   };
73345 
73346   struct PhysicalDeviceVulkan12Properties
73347   {
73348     static const bool allowDuplicate = false;
73349     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties;
73350 
73351 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73352     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
73353     : 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_ )
73354     {}
73355 
73356     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73357 
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73358     PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
73359       : PhysicalDeviceVulkan12Properties( *reinterpret_cast<PhysicalDeviceVulkan12Properties const *>( &rhs ) )
73360     {}
73361 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73362 
73363     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73364 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73365     PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
73366     {
73367       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const *>( &rhs );
73368       return *this;
73369     }
73370 
73371 
operator VkPhysicalDeviceVulkan12Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73372     operator VkPhysicalDeviceVulkan12Properties const&() const VULKAN_HPP_NOEXCEPT
73373     {
73374       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>( this );
73375     }
73376 
operator VkPhysicalDeviceVulkan12Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73377     operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
73378     {
73379       return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>( this );
73380     }
73381 
73382 
73383 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73384     auto operator<=>( PhysicalDeviceVulkan12Properties const& ) const = default;
73385 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73386     bool operator==( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
73387     {
73388       return ( sType == rhs.sType )
73389           && ( pNext == rhs.pNext )
73390           && ( driverID == rhs.driverID )
73391           && ( driverName == rhs.driverName )
73392           && ( driverInfo == rhs.driverInfo )
73393           && ( conformanceVersion == rhs.conformanceVersion )
73394           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
73395           && ( roundingModeIndependence == rhs.roundingModeIndependence )
73396           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
73397           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
73398           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
73399           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
73400           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
73401           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
73402           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
73403           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
73404           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
73405           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
73406           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
73407           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
73408           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
73409           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
73410           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 )
73411           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
73412           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
73413           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
73414           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
73415           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
73416           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
73417           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
73418           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
73419           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
73420           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
73421           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
73422           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
73423           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
73424           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
73425           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
73426           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
73427           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
73428           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
73429           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
73430           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
73431           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
73432           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
73433           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments )
73434           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
73435           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
73436           && ( independentResolveNone == rhs.independentResolveNone )
73437           && ( independentResolve == rhs.independentResolve )
73438           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
73439           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping )
73440           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference )
73441           && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts );
73442     }
73443 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73444     bool operator!=( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
73445     {
73446       return !operator==( rhs );
73447     }
73448 #endif
73449 
73450 
73451 
73452   public:
73453     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties;
73454     void* pNext = {};
73455     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
73456     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
73457     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
73458     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
73459     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
73460     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
73461     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
73462     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
73463     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
73464     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
73465     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
73466     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
73467     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
73468     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
73469     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
73470     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
73471     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
73472     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
73473     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
73474     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
73475     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
73476     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
73477     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
73478     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
73479     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
73480     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
73481     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
73482     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
73483     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
73484     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
73485     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
73486     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
73487     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
73488     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
73489     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
73490     uint32_t maxPerStageUpdateAfterBindResources = {};
73491     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
73492     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
73493     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
73494     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
73495     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
73496     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
73497     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
73498     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
73499     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
73500     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
73501     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
73502     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
73503     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
73504     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
73505     uint64_t maxTimelineSemaphoreValueDifference = {};
73506     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {};
73507 
73508   };
73509   static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), "struct and wrapper have different size!" );
73510   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Properties>::value, "struct wrapper is not a standard layout!" );
73511 
73512   template <>
73513   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Properties>
73514   {
73515     using Type = PhysicalDeviceVulkan12Properties;
73516   };
73517 
73518   struct PhysicalDeviceVulkanMemoryModelFeatures
73519   {
73520     static const bool allowDuplicate = false;
73521     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
73522 
73523 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73524     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures(VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}) VULKAN_HPP_NOEXCEPT
73525     : vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
73526     {}
73527 
73528     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73529 
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73530     PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73531       : PhysicalDeviceVulkanMemoryModelFeatures( *reinterpret_cast<PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs ) )
73532     {}
73533 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73534 
73535     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73536 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73537     PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73538     {
73539       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs );
73540       return *this;
73541     }
73542 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73543     PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
73544     {
73545       pNext = pNext_;
73546       return *this;
73547     }
73548 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73549     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
73550     {
73551       vulkanMemoryModel = vulkanMemoryModel_;
73552       return *this;
73553     }
73554 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73555     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
73556     {
73557       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
73558       return *this;
73559     }
73560 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73561     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
73562     {
73563       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
73564       return *this;
73565     }
73566 
73567 
operator VkPhysicalDeviceVulkanMemoryModelFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73568     operator VkPhysicalDeviceVulkanMemoryModelFeatures const&() const VULKAN_HPP_NOEXCEPT
73569     {
73570       return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
73571     }
73572 
operator VkPhysicalDeviceVulkanMemoryModelFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73573     operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
73574     {
73575       return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
73576     }
73577 
73578 
73579 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73580     auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const& ) const = default;
73581 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73582     bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
73583     {
73584       return ( sType == rhs.sType )
73585           && ( pNext == rhs.pNext )
73586           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
73587           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
73588           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
73589     }
73590 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73591     bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
73592     {
73593       return !operator==( rhs );
73594     }
73595 #endif
73596 
73597 
73598 
73599   public:
73600     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
73601     void* pNext = {};
73602     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
73603     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
73604     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
73605 
73606   };
73607   static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), "struct and wrapper have different size!" );
73608   static_assert( std::is_standard_layout<PhysicalDeviceVulkanMemoryModelFeatures>::value, "struct wrapper is not a standard layout!" );
73609 
73610   template <>
73611   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkanMemoryModelFeatures>
73612   {
73613     using Type = PhysicalDeviceVulkanMemoryModelFeatures;
73614   };
73615   using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
73616 
73617   struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
73618   {
73619     static const bool allowDuplicate = false;
73620     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
73621 
73622 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73623     VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ = {}) VULKAN_HPP_NOEXCEPT
73624     : workgroupMemoryExplicitLayout( workgroupMemoryExplicitLayout_ ), workgroupMemoryExplicitLayoutScalarBlockLayout( workgroupMemoryExplicitLayoutScalarBlockLayout_ ), workgroupMemoryExplicitLayout8BitAccess( workgroupMemoryExplicitLayout8BitAccess_ ), workgroupMemoryExplicitLayout16BitAccess( workgroupMemoryExplicitLayout16BitAccess_ )
73625     {}
73626 
73627     VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73628 
PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73629     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73630       : PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( *reinterpret_cast<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const *>( &rhs ) )
73631     {}
73632 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73633 
73634     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & operator=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73635 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73636     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & operator=( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73637     {
73638       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const *>( &rhs );
73639       return *this;
73640     }
73641 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73642     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
73643     {
73644       pNext = pNext_;
73645       return *this;
73646     }
73647 
setWorkgroupMemoryExplicitLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73648     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ ) VULKAN_HPP_NOEXCEPT
73649     {
73650       workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout_;
73651       return *this;
73652     }
73653 
setWorkgroupMemoryExplicitLayoutScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73654     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayoutScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
73655     {
73656       workgroupMemoryExplicitLayoutScalarBlockLayout = workgroupMemoryExplicitLayoutScalarBlockLayout_;
73657       return *this;
73658     }
73659 
setWorkgroupMemoryExplicitLayout8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73660     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ ) VULKAN_HPP_NOEXCEPT
73661     {
73662       workgroupMemoryExplicitLayout8BitAccess = workgroupMemoryExplicitLayout8BitAccess_;
73663       return *this;
73664     }
73665 
setWorkgroupMemoryExplicitLayout16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73666     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ ) VULKAN_HPP_NOEXCEPT
73667     {
73668       workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess_;
73669       return *this;
73670     }
73671 
73672 
operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73673     operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
73674     {
73675       return *reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>( this );
73676     }
73677 
operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73678     operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &() VULKAN_HPP_NOEXCEPT
73679     {
73680       return *reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>( this );
73681     }
73682 
73683 
73684 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73685     auto operator<=>( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const& ) const = default;
73686 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73687     bool operator==( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73688     {
73689       return ( sType == rhs.sType )
73690           && ( pNext == rhs.pNext )
73691           && ( workgroupMemoryExplicitLayout == rhs.workgroupMemoryExplicitLayout )
73692           && ( workgroupMemoryExplicitLayoutScalarBlockLayout == rhs.workgroupMemoryExplicitLayoutScalarBlockLayout )
73693           && ( workgroupMemoryExplicitLayout8BitAccess == rhs.workgroupMemoryExplicitLayout8BitAccess )
73694           && ( workgroupMemoryExplicitLayout16BitAccess == rhs.workgroupMemoryExplicitLayout16BitAccess );
73695     }
73696 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR73697     bool operator!=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73698     {
73699       return !operator==( rhs );
73700     }
73701 #endif
73702 
73703 
73704 
73705   public:
73706     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
73707     void* pNext = {};
73708     VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout = {};
73709     VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout = {};
73710     VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess = {};
73711     VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess = {};
73712 
73713   };
73714   static_assert( sizeof( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR ) == sizeof( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR ), "struct and wrapper have different size!" );
73715   static_assert( std::is_standard_layout<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
73716 
73717   template <>
73718   struct CppType<StructureType, StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>
73719   {
73720     using Type = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
73721   };
73722 
73723   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
73724   {
73725     static const bool allowDuplicate = false;
73726     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
73727 
73728 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73729     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {}) VULKAN_HPP_NOEXCEPT
73730     : ycbcrImageArrays( ycbcrImageArrays_ )
73731     {}
73732 
73733     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73734 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73735     PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73736       : PhysicalDeviceYcbcrImageArraysFeaturesEXT( *reinterpret_cast<PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs ) )
73737     {}
73738 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73739 
73740     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73741 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73742     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73743     {
73744       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs );
73745       return *this;
73746     }
73747 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73748     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
73749     {
73750       pNext = pNext_;
73751       return *this;
73752     }
73753 
setYcbcrImageArraysVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73754     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
73755     {
73756       ycbcrImageArrays = ycbcrImageArrays_;
73757       return *this;
73758     }
73759 
73760 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73761     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
73762     {
73763       return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
73764     }
73765 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73766     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
73767     {
73768       return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
73769     }
73770 
73771 
73772 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73773     auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& ) const = default;
73774 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73775     bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73776     {
73777       return ( sType == rhs.sType )
73778           && ( pNext == rhs.pNext )
73779           && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
73780     }
73781 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73782     bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73783     {
73784       return !operator==( rhs );
73785     }
73786 #endif
73787 
73788 
73789 
73790   public:
73791     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
73792     void* pNext = {};
73793     VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {};
73794 
73795   };
73796   static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" );
73797   static_assert( std::is_standard_layout<PhysicalDeviceYcbcrImageArraysFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
73798 
73799   template <>
73800   struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT>
73801   {
73802     using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
73803   };
73804 
73805   struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR
73806   {
73807     static const bool allowDuplicate = false;
73808     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
73809 
73810 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73811     VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {}) VULKAN_HPP_NOEXCEPT
73812     : shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ )
73813     {}
73814 
73815     VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73816 
PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73817     PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73818       : PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( *reinterpret_cast<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const *>( &rhs ) )
73819     {}
73820 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73821 
73822     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & operator=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73823 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73824     PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & operator=( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
73825     {
73826       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const *>( &rhs );
73827       return *this;
73828     }
73829 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73830     PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
73831     {
73832       pNext = pNext_;
73833       return *this;
73834     }
73835 
setShaderZeroInitializeWorkgroupMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73836     PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
73837     {
73838       shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
73839       return *this;
73840     }
73841 
73842 
operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73843     operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
73844     {
73845       return *reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>( this );
73846     }
73847 
operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73848     operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
73849     {
73850       return *reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>( this );
73851     }
73852 
73853 
73854 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73855     auto operator<=>( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const& ) const = default;
73856 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73857     bool operator==( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73858     {
73859       return ( sType == rhs.sType )
73860           && ( pNext == rhs.pNext )
73861           && ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory );
73862     }
73863 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR73864     bool operator!=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
73865     {
73866       return !operator==( rhs );
73867     }
73868 #endif
73869 
73870 
73871 
73872   public:
73873     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
73874     void* pNext = {};
73875     VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {};
73876 
73877   };
73878   static_assert( sizeof( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR ) == sizeof( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR ), "struct and wrapper have different size!" );
73879   static_assert( std::is_standard_layout<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
73880 
73881   template <>
73882   struct CppType<StructureType, StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR>
73883   {
73884     using Type = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
73885   };
73886 
73887   struct PipelineColorBlendAdvancedStateCreateInfoEXT
73888   {
73889     static const bool allowDuplicate = false;
73890     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
73891 
73892 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73893     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
73894     : srcPremultiplied( srcPremultiplied_ ), dstPremultiplied( dstPremultiplied_ ), blendOverlap( blendOverlap_ )
73895     {}
73896 
73897     VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73898 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73899     PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73900       : PipelineColorBlendAdvancedStateCreateInfoEXT( *reinterpret_cast<PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs ) )
73901     {}
73902 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73903 
73904     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73905 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73906     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73907     {
73908       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs );
73909       return *this;
73910     }
73911 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73912     PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73913     {
73914       pNext = pNext_;
73915       return *this;
73916     }
73917 
setSrcPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73918     PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
73919     {
73920       srcPremultiplied = srcPremultiplied_;
73921       return *this;
73922     }
73923 
setDstPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73924     PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
73925     {
73926       dstPremultiplied = dstPremultiplied_;
73927       return *this;
73928     }
73929 
setBlendOverlapVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73930     PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
73931     {
73932       blendOverlap = blendOverlap_;
73933       return *this;
73934     }
73935 
73936 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73937     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73938     {
73939       return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
73940     }
73941 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73942     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73943     {
73944       return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
73945     }
73946 
73947 
73948 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73949     auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const& ) const = default;
73950 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73951     bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73952     {
73953       return ( sType == rhs.sType )
73954           && ( pNext == rhs.pNext )
73955           && ( srcPremultiplied == rhs.srcPremultiplied )
73956           && ( dstPremultiplied == rhs.dstPremultiplied )
73957           && ( blendOverlap == rhs.blendOverlap );
73958     }
73959 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73960     bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73961     {
73962       return !operator==( rhs );
73963     }
73964 #endif
73965 
73966 
73967 
73968   public:
73969     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
73970     const void* pNext = {};
73971     VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
73972     VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
73973     VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
73974 
73975   };
73976   static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" );
73977   static_assert( std::is_standard_layout<PipelineColorBlendAdvancedStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73978 
73979   template <>
73980   struct CppType<StructureType, StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT>
73981   {
73982     using Type = PipelineColorBlendAdvancedStateCreateInfoEXT;
73983   };
73984 
73985   struct PipelineCompilerControlCreateInfoAMD
73986   {
73987     static const bool allowDuplicate = false;
73988     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD;
73989 
73990 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73991     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD(VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {}) VULKAN_HPP_NOEXCEPT
73992     : compilerControlFlags( compilerControlFlags_ )
73993     {}
73994 
73995     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73996 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73997     PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73998       : PipelineCompilerControlCreateInfoAMD( *reinterpret_cast<PipelineCompilerControlCreateInfoAMD const *>( &rhs ) )
73999     {}
74000 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74001 
74002     VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74003 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD74004     PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74005     {
74006       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const *>( &rhs );
74007       return *this;
74008     }
74009 
setPNextVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD74010     PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74011     {
74012       pNext = pNext_;
74013       return *this;
74014     }
74015 
setCompilerControlFlagsVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD74016     PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
74017     {
74018       compilerControlFlags = compilerControlFlags_;
74019       return *this;
74020     }
74021 
74022 
operator VkPipelineCompilerControlCreateInfoAMD const&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD74023     operator VkPipelineCompilerControlCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
74024     {
74025       return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>( this );
74026     }
74027 
operator VkPipelineCompilerControlCreateInfoAMD&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD74028     operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
74029     {
74030       return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>( this );
74031     }
74032 
74033 
74034 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74035     auto operator<=>( PipelineCompilerControlCreateInfoAMD const& ) const = default;
74036 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD74037     bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
74038     {
74039       return ( sType == rhs.sType )
74040           && ( pNext == rhs.pNext )
74041           && ( compilerControlFlags == rhs.compilerControlFlags );
74042     }
74043 
operator !=VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD74044     bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
74045     {
74046       return !operator==( rhs );
74047     }
74048 #endif
74049 
74050 
74051 
74052   public:
74053     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
74054     const void* pNext = {};
74055     VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {};
74056 
74057   };
74058   static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" );
74059   static_assert( std::is_standard_layout<PipelineCompilerControlCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
74060 
74061   template <>
74062   struct CppType<StructureType, StructureType::ePipelineCompilerControlCreateInfoAMD>
74063   {
74064     using Type = PipelineCompilerControlCreateInfoAMD;
74065   };
74066 
74067   struct PipelineCoverageModulationStateCreateInfoNV
74068   {
74069     static const bool allowDuplicate = false;
74070     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
74071 
74072 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74073     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
74074     : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( coverageModulationTableCount_ ), pCoverageModulationTable( pCoverageModulationTable_ )
74075     {}
74076 
74077     VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74078 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74079     PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74080       : PipelineCoverageModulationStateCreateInfoNV( *reinterpret_cast<PipelineCoverageModulationStateCreateInfoNV const *>( &rhs ) )
74081     {}
74082 
74083 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74084     PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ )
74085     : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( static_cast<uint32_t>( coverageModulationTable_.size() ) ), pCoverageModulationTable( coverageModulationTable_.data() )
74086     {}
74087 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74088 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74089 
74090     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74091 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74092     PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74093     {
74094       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const *>( &rhs );
74095       return *this;
74096     }
74097 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74098     PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74099     {
74100       pNext = pNext_;
74101       return *this;
74102     }
74103 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74104     PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
74105     {
74106       flags = flags_;
74107       return *this;
74108     }
74109 
setCoverageModulationModeVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74110     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
74111     {
74112       coverageModulationMode = coverageModulationMode_;
74113       return *this;
74114     }
74115 
setCoverageModulationTableEnableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74116     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
74117     {
74118       coverageModulationTableEnable = coverageModulationTableEnable_;
74119       return *this;
74120     }
74121 
setCoverageModulationTableCountVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74122     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
74123     {
74124       coverageModulationTableCount = coverageModulationTableCount_;
74125       return *this;
74126     }
74127 
setPCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74128     PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
74129     {
74130       pCoverageModulationTable = pCoverageModulationTable_;
74131       return *this;
74132     }
74133 
74134 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74135     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
74136     {
74137       coverageModulationTableCount = static_cast<uint32_t>( coverageModulationTable_.size() );
74138       pCoverageModulationTable = coverageModulationTable_.data();
74139       return *this;
74140     }
74141 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74142 
74143 
operator VkPipelineCoverageModulationStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74144     operator VkPipelineCoverageModulationStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74145     {
74146       return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>( this );
74147     }
74148 
operator VkPipelineCoverageModulationStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74149     operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74150     {
74151       return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>( this );
74152     }
74153 
74154 
74155 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74156     auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const& ) const = default;
74157 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74158     bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74159     {
74160       return ( sType == rhs.sType )
74161           && ( pNext == rhs.pNext )
74162           && ( flags == rhs.flags )
74163           && ( coverageModulationMode == rhs.coverageModulationMode )
74164           && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable )
74165           && ( coverageModulationTableCount == rhs.coverageModulationTableCount )
74166           && ( pCoverageModulationTable == rhs.pCoverageModulationTable );
74167     }
74168 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV74169     bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74170     {
74171       return !operator==( rhs );
74172     }
74173 #endif
74174 
74175 
74176 
74177   public:
74178     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
74179     const void* pNext = {};
74180     VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {};
74181     VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone;
74182     VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {};
74183     uint32_t coverageModulationTableCount = {};
74184     const float* pCoverageModulationTable = {};
74185 
74186   };
74187   static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" );
74188   static_assert( std::is_standard_layout<PipelineCoverageModulationStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74189 
74190   template <>
74191   struct CppType<StructureType, StructureType::ePipelineCoverageModulationStateCreateInfoNV>
74192   {
74193     using Type = PipelineCoverageModulationStateCreateInfoNV;
74194   };
74195 
74196   struct PipelineCoverageReductionStateCreateInfoNV
74197   {
74198     static const bool allowDuplicate = false;
74199     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
74200 
74201 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74202     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge) VULKAN_HPP_NOEXCEPT
74203     : flags( flags_ ), coverageReductionMode( coverageReductionMode_ )
74204     {}
74205 
74206     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74207 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74208     PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74209       : PipelineCoverageReductionStateCreateInfoNV( *reinterpret_cast<PipelineCoverageReductionStateCreateInfoNV const *>( &rhs ) )
74210     {}
74211 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74212 
74213     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74214 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74215     PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74216     {
74217       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const *>( &rhs );
74218       return *this;
74219     }
74220 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74221     PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74222     {
74223       pNext = pNext_;
74224       return *this;
74225     }
74226 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74227     PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
74228     {
74229       flags = flags_;
74230       return *this;
74231     }
74232 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74233     PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
74234     {
74235       coverageReductionMode = coverageReductionMode_;
74236       return *this;
74237     }
74238 
74239 
operator VkPipelineCoverageReductionStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74240     operator VkPipelineCoverageReductionStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74241     {
74242       return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>( this );
74243     }
74244 
operator VkPipelineCoverageReductionStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74245     operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74246     {
74247       return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>( this );
74248     }
74249 
74250 
74251 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74252     auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const& ) const = default;
74253 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74254     bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74255     {
74256       return ( sType == rhs.sType )
74257           && ( pNext == rhs.pNext )
74258           && ( flags == rhs.flags )
74259           && ( coverageReductionMode == rhs.coverageReductionMode );
74260     }
74261 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV74262     bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74263     {
74264       return !operator==( rhs );
74265     }
74266 #endif
74267 
74268 
74269 
74270   public:
74271     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
74272     const void* pNext = {};
74273     VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {};
74274     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
74275 
74276   };
74277   static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" );
74278   static_assert( std::is_standard_layout<PipelineCoverageReductionStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74279 
74280   template <>
74281   struct CppType<StructureType, StructureType::ePipelineCoverageReductionStateCreateInfoNV>
74282   {
74283     using Type = PipelineCoverageReductionStateCreateInfoNV;
74284   };
74285 
74286   struct PipelineCoverageToColorStateCreateInfoNV
74287   {
74288     static const bool allowDuplicate = false;
74289     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
74290 
74291 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74292     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, uint32_t coverageToColorLocation_ = {}) VULKAN_HPP_NOEXCEPT
74293     : flags( flags_ ), coverageToColorEnable( coverageToColorEnable_ ), coverageToColorLocation( coverageToColorLocation_ )
74294     {}
74295 
74296     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74297 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74298     PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74299       : PipelineCoverageToColorStateCreateInfoNV( *reinterpret_cast<PipelineCoverageToColorStateCreateInfoNV const *>( &rhs ) )
74300     {}
74301 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74302 
74303     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74304 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74305     PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74306     {
74307       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const *>( &rhs );
74308       return *this;
74309     }
74310 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74311     PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74312     {
74313       pNext = pNext_;
74314       return *this;
74315     }
74316 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74317     PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
74318     {
74319       flags = flags_;
74320       return *this;
74321     }
74322 
setCoverageToColorEnableVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74323     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
74324     {
74325       coverageToColorEnable = coverageToColorEnable_;
74326       return *this;
74327     }
74328 
setCoverageToColorLocationVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74329     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
74330     {
74331       coverageToColorLocation = coverageToColorLocation_;
74332       return *this;
74333     }
74334 
74335 
operator VkPipelineCoverageToColorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74336     operator VkPipelineCoverageToColorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74337     {
74338       return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>( this );
74339     }
74340 
operator VkPipelineCoverageToColorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74341     operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74342     {
74343       return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>( this );
74344     }
74345 
74346 
74347 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74348     auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const& ) const = default;
74349 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74350     bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74351     {
74352       return ( sType == rhs.sType )
74353           && ( pNext == rhs.pNext )
74354           && ( flags == rhs.flags )
74355           && ( coverageToColorEnable == rhs.coverageToColorEnable )
74356           && ( coverageToColorLocation == rhs.coverageToColorLocation );
74357     }
74358 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV74359     bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74360     {
74361       return !operator==( rhs );
74362     }
74363 #endif
74364 
74365 
74366 
74367   public:
74368     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
74369     const void* pNext = {};
74370     VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {};
74371     VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {};
74372     uint32_t coverageToColorLocation = {};
74373 
74374   };
74375   static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" );
74376   static_assert( std::is_standard_layout<PipelineCoverageToColorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74377 
74378   template <>
74379   struct CppType<StructureType, StructureType::ePipelineCoverageToColorStateCreateInfoNV>
74380   {
74381     using Type = PipelineCoverageToColorStateCreateInfoNV;
74382   };
74383 
74384   struct PipelineCreationFeedbackEXT
74385   {
74386 
74387 
74388 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74389     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {}, uint64_t duration_ = {}) VULKAN_HPP_NOEXCEPT
74390     : flags( flags_ ), duration( duration_ )
74391     {}
74392 
74393     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74394 
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74395     PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74396       : PipelineCreationFeedbackEXT( *reinterpret_cast<PipelineCreationFeedbackEXT const *>( &rhs ) )
74397     {}
74398 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74399 
74400     VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackEXT & operator=( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74401 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74402     PipelineCreationFeedbackEXT & operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74403     {
74404       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT const *>( &rhs );
74405       return *this;
74406     }
74407 
74408 
operator VkPipelineCreationFeedbackEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74409     operator VkPipelineCreationFeedbackEXT const&() const VULKAN_HPP_NOEXCEPT
74410     {
74411       return *reinterpret_cast<const VkPipelineCreationFeedbackEXT*>( this );
74412     }
74413 
operator VkPipelineCreationFeedbackEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74414     operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT
74415     {
74416       return *reinterpret_cast<VkPipelineCreationFeedbackEXT*>( this );
74417     }
74418 
74419 
74420 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74421     auto operator<=>( PipelineCreationFeedbackEXT const& ) const = default;
74422 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74423     bool operator==( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74424     {
74425       return ( flags == rhs.flags )
74426           && ( duration == rhs.duration );
74427     }
74428 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74429     bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74430     {
74431       return !operator==( rhs );
74432     }
74433 #endif
74434 
74435 
74436 
74437   public:
74438     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {};
74439     uint64_t duration = {};
74440 
74441   };
74442   static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" );
74443   static_assert( std::is_standard_layout<PipelineCreationFeedbackEXT>::value, "struct wrapper is not a standard layout!" );
74444 
74445   struct PipelineCreationFeedbackCreateInfoEXT
74446   {
74447     static const bool allowDuplicate = false;
74448     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
74449 
74450 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74451     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = {}, uint32_t pipelineStageCreationFeedbackCount_ = {}, VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = {}) VULKAN_HPP_NOEXCEPT
74452     : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ), pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
74453     {}
74454 
74455     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74456 
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74457     PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74458       : PipelineCreationFeedbackCreateInfoEXT( *reinterpret_cast<PipelineCreationFeedbackCreateInfoEXT const *>( &rhs ) )
74459     {}
74460 
74461 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74462     PipelineCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const & pipelineStageCreationFeedbacks_ )
74463     : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() ) ), pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() )
74464     {}
74465 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74466 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74467 
74468     VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfoEXT & operator=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74469 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74470     PipelineCreationFeedbackCreateInfoEXT & operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74471     {
74472       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT const *>( &rhs );
74473       return *this;
74474     }
74475 
setPNextVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74476     PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74477     {
74478       pNext = pNext_;
74479       return *this;
74480     }
74481 
setPPipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74482     PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
74483     {
74484       pPipelineCreationFeedback = pPipelineCreationFeedback_;
74485       return *this;
74486     }
74487 
setPipelineStageCreationFeedbackCountVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74488     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
74489     {
74490       pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
74491       return *this;
74492     }
74493 
setPPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74494     PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
74495     {
74496       pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
74497       return *this;
74498     }
74499 
74500 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74501     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const & pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
74502     {
74503       pipelineStageCreationFeedbackCount = static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() );
74504       pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data();
74505       return *this;
74506     }
74507 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74508 
74509 
operator VkPipelineCreationFeedbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74510     operator VkPipelineCreationFeedbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74511     {
74512       return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>( this );
74513     }
74514 
operator VkPipelineCreationFeedbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74515     operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74516     {
74517       return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>( this );
74518     }
74519 
74520 
74521 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74522     auto operator<=>( PipelineCreationFeedbackCreateInfoEXT const& ) const = default;
74523 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74524     bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74525     {
74526       return ( sType == rhs.sType )
74527           && ( pNext == rhs.pNext )
74528           && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback )
74529           && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount )
74530           && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
74531     }
74532 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74533     bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74534     {
74535       return !operator==( rhs );
74536     }
74537 #endif
74538 
74539 
74540 
74541   public:
74542     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
74543     const void* pNext = {};
74544     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback = {};
74545     uint32_t pipelineStageCreationFeedbackCount = {};
74546     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks = {};
74547 
74548   };
74549   static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" );
74550   static_assert( std::is_standard_layout<PipelineCreationFeedbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74551 
74552   template <>
74553   struct CppType<StructureType, StructureType::ePipelineCreationFeedbackCreateInfoEXT>
74554   {
74555     using Type = PipelineCreationFeedbackCreateInfoEXT;
74556   };
74557 
74558   struct PipelineDiscardRectangleStateCreateInfoEXT
74559   {
74560     static const bool allowDuplicate = false;
74561     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
74562 
74563 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74564     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
74565     : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( discardRectangleCount_ ), pDiscardRectangles( pDiscardRectangles_ )
74566     {}
74567 
74568     VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74569 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74570     PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74571       : PipelineDiscardRectangleStateCreateInfoEXT( *reinterpret_cast<PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs ) )
74572     {}
74573 
74574 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74575     PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ )
74576     : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( static_cast<uint32_t>( discardRectangles_.size() ) ), pDiscardRectangles( discardRectangles_.data() )
74577     {}
74578 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74579 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74580 
74581     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74582 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74583     PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74584     {
74585       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs );
74586       return *this;
74587     }
74588 
setPNextVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74589     PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74590     {
74591       pNext = pNext_;
74592       return *this;
74593     }
74594 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74595     PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74596     {
74597       flags = flags_;
74598       return *this;
74599     }
74600 
setDiscardRectangleModeVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74601     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
74602     {
74603       discardRectangleMode = discardRectangleMode_;
74604       return *this;
74605     }
74606 
setDiscardRectangleCountVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74607     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT
74608     {
74609       discardRectangleCount = discardRectangleCount_;
74610       return *this;
74611     }
74612 
setPDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74613     PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
74614     {
74615       pDiscardRectangles = pDiscardRectangles_;
74616       return *this;
74617     }
74618 
74619 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74620     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT
74621     {
74622       discardRectangleCount = static_cast<uint32_t>( discardRectangles_.size() );
74623       pDiscardRectangles = discardRectangles_.data();
74624       return *this;
74625     }
74626 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74627 
74628 
operator VkPipelineDiscardRectangleStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74629     operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74630     {
74631       return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
74632     }
74633 
operator VkPipelineDiscardRectangleStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74634     operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74635     {
74636       return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
74637     }
74638 
74639 
74640 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74641     auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const& ) const = default;
74642 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74643     bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74644     {
74645       return ( sType == rhs.sType )
74646           && ( pNext == rhs.pNext )
74647           && ( flags == rhs.flags )
74648           && ( discardRectangleMode == rhs.discardRectangleMode )
74649           && ( discardRectangleCount == rhs.discardRectangleCount )
74650           && ( pDiscardRectangles == rhs.pDiscardRectangles );
74651     }
74652 
operator !=VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74653     bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74654     {
74655       return !operator==( rhs );
74656     }
74657 #endif
74658 
74659 
74660 
74661   public:
74662     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
74663     const void* pNext = {};
74664     VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {};
74665     VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive;
74666     uint32_t discardRectangleCount = {};
74667     const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles = {};
74668 
74669   };
74670   static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" );
74671   static_assert( std::is_standard_layout<PipelineDiscardRectangleStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74672 
74673   template <>
74674   struct CppType<StructureType, StructureType::ePipelineDiscardRectangleStateCreateInfoEXT>
74675   {
74676     using Type = PipelineDiscardRectangleStateCreateInfoEXT;
74677   };
74678 
74679   struct PipelineFragmentShadingRateEnumStateCreateInfoNV
74680   {
74681     static const bool allowDuplicate = false;
74682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
74683 
74684 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineFragmentShadingRateEnumStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74685     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize, VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel, std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> const& combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }) VULKAN_HPP_NOEXCEPT
74686     : shadingRateType( shadingRateType_ ), shadingRate( shadingRate_ ), combinerOps( combinerOps_ )
74687     {}
74688 
74689     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74690 
PipelineFragmentShadingRateEnumStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74691     PipelineFragmentShadingRateEnumStateCreateInfoNV( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74692       : PipelineFragmentShadingRateEnumStateCreateInfoNV( *reinterpret_cast<PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs ) )
74693     {}
74694 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74695 
74696     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74697 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74698     PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74699     {
74700       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs );
74701       return *this;
74702     }
74703 
setPNextVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74704     PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74705     {
74706       pNext = pNext_;
74707       return *this;
74708     }
74709 
setShadingRateTypeVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74710     PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT
74711     {
74712       shadingRateType = shadingRateType_;
74713       return *this;
74714     }
74715 
setShadingRateVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74716     PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
74717     {
74718       shadingRate = shadingRate_;
74719       return *this;
74720     }
74721 
setCombinerOpsVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74722     PipelineFragmentShadingRateEnumStateCreateInfoNV & setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
74723     {
74724       combinerOps = combinerOps_;
74725       return *this;
74726     }
74727 
74728 
operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74729     operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74730     {
74731       return *reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>( this );
74732     }
74733 
operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74734     operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74735     {
74736       return *reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>( this );
74737     }
74738 
74739 
74740 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74741     auto operator<=>( PipelineFragmentShadingRateEnumStateCreateInfoNV const& ) const = default;
74742 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74743     bool operator==( PipelineFragmentShadingRateEnumStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74744     {
74745       return ( sType == rhs.sType )
74746           && ( pNext == rhs.pNext )
74747           && ( shadingRateType == rhs.shadingRateType )
74748           && ( shadingRate == rhs.shadingRate )
74749           && ( combinerOps == rhs.combinerOps );
74750     }
74751 
operator !=VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74752     bool operator!=( PipelineFragmentShadingRateEnumStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74753     {
74754       return !operator==( rhs );
74755     }
74756 #endif
74757 
74758 
74759 
74760   public:
74761     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
74762     const void* pNext = {};
74763     VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize;
74764     VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel;
74765     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
74766 
74767   };
74768   static_assert( sizeof( PipelineFragmentShadingRateEnumStateCreateInfoNV ) == sizeof( VkPipelineFragmentShadingRateEnumStateCreateInfoNV ), "struct and wrapper have different size!" );
74769   static_assert( std::is_standard_layout<PipelineFragmentShadingRateEnumStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74770 
74771   template <>
74772   struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV>
74773   {
74774     using Type = PipelineFragmentShadingRateEnumStateCreateInfoNV;
74775   };
74776 
74777   struct PipelineFragmentShadingRateStateCreateInfoKHR
74778   {
74779     static const bool allowDuplicate = false;
74780     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
74781 
74782 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineFragmentShadingRateStateCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74783     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR(VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}, std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> const& combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }) VULKAN_HPP_NOEXCEPT
74784     : fragmentSize( fragmentSize_ ), combinerOps( combinerOps_ )
74785     {}
74786 
74787     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74788 
PipelineFragmentShadingRateStateCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74789     PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74790       : PipelineFragmentShadingRateStateCreateInfoKHR( *reinterpret_cast<PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs ) )
74791     {}
74792 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74793 
74794     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR & operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74795 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74796     PipelineFragmentShadingRateStateCreateInfoKHR & operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74797     {
74798       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs );
74799       return *this;
74800     }
74801 
setPNextVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74802     PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74803     {
74804       pNext = pNext_;
74805       return *this;
74806     }
74807 
setFragmentSizeVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74808     PipelineFragmentShadingRateStateCreateInfoKHR & setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT
74809     {
74810       fragmentSize = fragmentSize_;
74811       return *this;
74812     }
74813 
setCombinerOpsVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74814     PipelineFragmentShadingRateStateCreateInfoKHR & setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
74815     {
74816       combinerOps = combinerOps_;
74817       return *this;
74818     }
74819 
74820 
operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74821     operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
74822     {
74823       return *reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>( this );
74824     }
74825 
operator VkPipelineFragmentShadingRateStateCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74826     operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
74827     {
74828       return *reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>( this );
74829     }
74830 
74831 
74832 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74833     auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const& ) const = default;
74834 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74835     bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
74836     {
74837       return ( sType == rhs.sType )
74838           && ( pNext == rhs.pNext )
74839           && ( fragmentSize == rhs.fragmentSize )
74840           && ( combinerOps == rhs.combinerOps );
74841     }
74842 
operator !=VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74843     bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
74844     {
74845       return !operator==( rhs );
74846     }
74847 #endif
74848 
74849 
74850 
74851   public:
74852     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
74853     const void* pNext = {};
74854     VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
74855     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
74856 
74857   };
74858   static_assert( sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) == sizeof( VkPipelineFragmentShadingRateStateCreateInfoKHR ), "struct and wrapper have different size!" );
74859   static_assert( std::is_standard_layout<PipelineFragmentShadingRateStateCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
74860 
74861   template <>
74862   struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR>
74863   {
74864     using Type = PipelineFragmentShadingRateStateCreateInfoKHR;
74865   };
74866 
74867   struct PipelineRasterizationConservativeStateCreateInfoEXT
74868   {
74869     static const bool allowDuplicate = false;
74870     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
74871 
74872 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74873     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, float extraPrimitiveOverestimationSize_ = {}) VULKAN_HPP_NOEXCEPT
74874     : flags( flags_ ), conservativeRasterizationMode( conservativeRasterizationMode_ ), extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
74875     {}
74876 
74877     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74878 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74879     PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74880       : PipelineRasterizationConservativeStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs ) )
74881     {}
74882 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74883 
74884     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74885 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74886     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74887     {
74888       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs );
74889       return *this;
74890     }
74891 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74892     PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74893     {
74894       pNext = pNext_;
74895       return *this;
74896     }
74897 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74898     PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74899     {
74900       flags = flags_;
74901       return *this;
74902     }
74903 
setConservativeRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74904     PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
74905     {
74906       conservativeRasterizationMode = conservativeRasterizationMode_;
74907       return *this;
74908     }
74909 
setExtraPrimitiveOverestimationSizeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74910     PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
74911     {
74912       extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
74913       return *this;
74914     }
74915 
74916 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74917     operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74918     {
74919       return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
74920     }
74921 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74922     operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74923     {
74924       return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
74925     }
74926 
74927 
74928 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74929     auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const& ) const = default;
74930 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74931     bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74932     {
74933       return ( sType == rhs.sType )
74934           && ( pNext == rhs.pNext )
74935           && ( flags == rhs.flags )
74936           && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode )
74937           && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
74938     }
74939 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74940     bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74941     {
74942       return !operator==( rhs );
74943     }
74944 #endif
74945 
74946 
74947 
74948   public:
74949     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
74950     const void* pNext = {};
74951     VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {};
74952     VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled;
74953     float extraPrimitiveOverestimationSize = {};
74954 
74955   };
74956   static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" );
74957   static_assert( std::is_standard_layout<PipelineRasterizationConservativeStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74958 
74959   template <>
74960   struct CppType<StructureType, StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT>
74961   {
74962     using Type = PipelineRasterizationConservativeStateCreateInfoEXT;
74963   };
74964 
74965   struct PipelineRasterizationDepthClipStateCreateInfoEXT
74966   {
74967     static const bool allowDuplicate = false;
74968     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
74969 
74970 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74971     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT
74972     : flags( flags_ ), depthClipEnable( depthClipEnable_ )
74973     {}
74974 
74975     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74976 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74977     PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74978       : PipelineRasterizationDepthClipStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs ) )
74979     {}
74980 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74981 
74982     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74983 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74984     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74985     {
74986       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs );
74987       return *this;
74988     }
74989 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74990     PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74991     {
74992       pNext = pNext_;
74993       return *this;
74994     }
74995 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74996     PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74997     {
74998       flags = flags_;
74999       return *this;
75000     }
75001 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT75002     PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
75003     {
75004       depthClipEnable = depthClipEnable_;
75005       return *this;
75006     }
75007 
75008 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT75009     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75010     {
75011       return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
75012     }
75013 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT75014     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75015     {
75016       return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
75017     }
75018 
75019 
75020 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75021     auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const& ) const = default;
75022 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT75023     bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75024     {
75025       return ( sType == rhs.sType )
75026           && ( pNext == rhs.pNext )
75027           && ( flags == rhs.flags )
75028           && ( depthClipEnable == rhs.depthClipEnable );
75029     }
75030 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT75031     bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75032     {
75033       return !operator==( rhs );
75034     }
75035 #endif
75036 
75037 
75038 
75039   public:
75040     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
75041     const void* pNext = {};
75042     VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {};
75043     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
75044 
75045   };
75046   static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" );
75047   static_assert( std::is_standard_layout<PipelineRasterizationDepthClipStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75048 
75049   template <>
75050   struct CppType<StructureType, StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT>
75051   {
75052     using Type = PipelineRasterizationDepthClipStateCreateInfoEXT;
75053   };
75054 
75055   struct PipelineRasterizationLineStateCreateInfoEXT
75056   {
75057     static const bool allowDuplicate = false;
75058     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
75059 
75060 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75061     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
75062     : lineRasterizationMode( lineRasterizationMode_ ), stippledLineEnable( stippledLineEnable_ ), lineStippleFactor( lineStippleFactor_ ), lineStipplePattern( lineStipplePattern_ )
75063     {}
75064 
75065     VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75066 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75067     PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75068       : PipelineRasterizationLineStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs ) )
75069     {}
75070 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75071 
75072     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75073 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75074     PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75075     {
75076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs );
75077       return *this;
75078     }
75079 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75080     PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75081     {
75082       pNext = pNext_;
75083       return *this;
75084     }
75085 
setLineRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75086     PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
75087     {
75088       lineRasterizationMode = lineRasterizationMode_;
75089       return *this;
75090     }
75091 
setStippledLineEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75092     PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
75093     {
75094       stippledLineEnable = stippledLineEnable_;
75095       return *this;
75096     }
75097 
setLineStippleFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75098     PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT
75099     {
75100       lineStippleFactor = lineStippleFactor_;
75101       return *this;
75102     }
75103 
setLineStipplePatternVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75104     PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT
75105     {
75106       lineStipplePattern = lineStipplePattern_;
75107       return *this;
75108     }
75109 
75110 
operator VkPipelineRasterizationLineStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75111     operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75112     {
75113       return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
75114     }
75115 
operator VkPipelineRasterizationLineStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75116     operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75117     {
75118       return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
75119     }
75120 
75121 
75122 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75123     auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const& ) const = default;
75124 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75125     bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75126     {
75127       return ( sType == rhs.sType )
75128           && ( pNext == rhs.pNext )
75129           && ( lineRasterizationMode == rhs.lineRasterizationMode )
75130           && ( stippledLineEnable == rhs.stippledLineEnable )
75131           && ( lineStippleFactor == rhs.lineStippleFactor )
75132           && ( lineStipplePattern == rhs.lineStipplePattern );
75133     }
75134 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT75135     bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75136     {
75137       return !operator==( rhs );
75138     }
75139 #endif
75140 
75141 
75142 
75143   public:
75144     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
75145     const void* pNext = {};
75146     VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault;
75147     VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {};
75148     uint32_t lineStippleFactor = {};
75149     uint16_t lineStipplePattern = {};
75150 
75151   };
75152   static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" );
75153   static_assert( std::is_standard_layout<PipelineRasterizationLineStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75154 
75155   template <>
75156   struct CppType<StructureType, StructureType::ePipelineRasterizationLineStateCreateInfoEXT>
75157   {
75158     using Type = PipelineRasterizationLineStateCreateInfoEXT;
75159   };
75160 
75161   struct PipelineRasterizationStateRasterizationOrderAMD
75162   {
75163     static const bool allowDuplicate = false;
75164     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
75165 
75166 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75167     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict) VULKAN_HPP_NOEXCEPT
75168     : rasterizationOrder( rasterizationOrder_ )
75169     {}
75170 
75171     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75172 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75173     PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
75174       : PipelineRasterizationStateRasterizationOrderAMD( *reinterpret_cast<PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs ) )
75175     {}
75176 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75177 
75178     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75179 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75180     PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
75181     {
75182       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs );
75183       return *this;
75184     }
75185 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75186     PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75187     {
75188       pNext = pNext_;
75189       return *this;
75190     }
75191 
setRasterizationOrderVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75192     PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
75193     {
75194       rasterizationOrder = rasterizationOrder_;
75195       return *this;
75196     }
75197 
75198 
operator VkPipelineRasterizationStateRasterizationOrderAMD const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75199     operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const VULKAN_HPP_NOEXCEPT
75200     {
75201       return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
75202     }
75203 
operator VkPipelineRasterizationStateRasterizationOrderAMD&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75204     operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
75205     {
75206       return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
75207     }
75208 
75209 
75210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75211     auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const& ) const = default;
75212 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75213     bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
75214     {
75215       return ( sType == rhs.sType )
75216           && ( pNext == rhs.pNext )
75217           && ( rasterizationOrder == rhs.rasterizationOrder );
75218     }
75219 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD75220     bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
75221     {
75222       return !operator==( rhs );
75223     }
75224 #endif
75225 
75226 
75227 
75228   public:
75229     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
75230     const void* pNext = {};
75231     VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict;
75232 
75233   };
75234   static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" );
75235   static_assert( std::is_standard_layout<PipelineRasterizationStateRasterizationOrderAMD>::value, "struct wrapper is not a standard layout!" );
75236 
75237   template <>
75238   struct CppType<StructureType, StructureType::ePipelineRasterizationStateRasterizationOrderAMD>
75239   {
75240     using Type = PipelineRasterizationStateRasterizationOrderAMD;
75241   };
75242 
75243   struct PipelineRasterizationStateStreamCreateInfoEXT
75244   {
75245     static const bool allowDuplicate = false;
75246     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
75247 
75248 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75249     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, uint32_t rasterizationStream_ = {}) VULKAN_HPP_NOEXCEPT
75250     : flags( flags_ ), rasterizationStream( rasterizationStream_ )
75251     {}
75252 
75253     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75254 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75255     PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75256       : PipelineRasterizationStateStreamCreateInfoEXT( *reinterpret_cast<PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs ) )
75257     {}
75258 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75259 
75260     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75261 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75262     PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75263     {
75264       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs );
75265       return *this;
75266     }
75267 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75268     PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75269     {
75270       pNext = pNext_;
75271       return *this;
75272     }
75273 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75274     PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
75275     {
75276       flags = flags_;
75277       return *this;
75278     }
75279 
setRasterizationStreamVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75280     PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT
75281     {
75282       rasterizationStream = rasterizationStream_;
75283       return *this;
75284     }
75285 
75286 
operator VkPipelineRasterizationStateStreamCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75287     operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75288     {
75289       return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
75290     }
75291 
operator VkPipelineRasterizationStateStreamCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75292     operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75293     {
75294       return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
75295     }
75296 
75297 
75298 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75299     auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const& ) const = default;
75300 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75301     bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75302     {
75303       return ( sType == rhs.sType )
75304           && ( pNext == rhs.pNext )
75305           && ( flags == rhs.flags )
75306           && ( rasterizationStream == rhs.rasterizationStream );
75307     }
75308 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT75309     bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75310     {
75311       return !operator==( rhs );
75312     }
75313 #endif
75314 
75315 
75316 
75317   public:
75318     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
75319     const void* pNext = {};
75320     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {};
75321     uint32_t rasterizationStream = {};
75322 
75323   };
75324   static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" );
75325   static_assert( std::is_standard_layout<PipelineRasterizationStateStreamCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75326 
75327   template <>
75328   struct CppType<StructureType, StructureType::ePipelineRasterizationStateStreamCreateInfoEXT>
75329   {
75330     using Type = PipelineRasterizationStateStreamCreateInfoEXT;
75331   };
75332 
75333   struct PipelineRepresentativeFragmentTestStateCreateInfoNV
75334   {
75335     static const bool allowDuplicate = false;
75336     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
75337 
75338 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75339     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {}) VULKAN_HPP_NOEXCEPT
75340     : representativeFragmentTestEnable( representativeFragmentTestEnable_ )
75341     {}
75342 
75343     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75344 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75345     PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75346       : PipelineRepresentativeFragmentTestStateCreateInfoNV( *reinterpret_cast<PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs ) )
75347     {}
75348 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75349 
75350     VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75351 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75352     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75353     {
75354       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs );
75355       return *this;
75356     }
75357 
setPNextVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75358     PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75359     {
75360       pNext = pNext_;
75361       return *this;
75362     }
75363 
setRepresentativeFragmentTestEnableVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75364     PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
75365     {
75366       representativeFragmentTestEnable = representativeFragmentTestEnable_;
75367       return *this;
75368     }
75369 
75370 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75371     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75372     {
75373       return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
75374     }
75375 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75376     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75377     {
75378       return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
75379     }
75380 
75381 
75382 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75383     auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const& ) const = default;
75384 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75385     bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75386     {
75387       return ( sType == rhs.sType )
75388           && ( pNext == rhs.pNext )
75389           && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
75390     }
75391 
operator !=VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75392     bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75393     {
75394       return !operator==( rhs );
75395     }
75396 #endif
75397 
75398 
75399 
75400   public:
75401     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
75402     const void* pNext = {};
75403     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {};
75404 
75405   };
75406   static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" );
75407   static_assert( std::is_standard_layout<PipelineRepresentativeFragmentTestStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75408 
75409   template <>
75410   struct CppType<StructureType, StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV>
75411   {
75412     using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV;
75413   };
75414 
75415   struct PipelineSampleLocationsStateCreateInfoEXT
75416   {
75417     static const bool allowDuplicate = false;
75418     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
75419 
75420 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75421     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
75422     : sampleLocationsEnable( sampleLocationsEnable_ ), sampleLocationsInfo( sampleLocationsInfo_ )
75423     {}
75424 
75425     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75426 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75427     PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75428       : PipelineSampleLocationsStateCreateInfoEXT( *reinterpret_cast<PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs ) )
75429     {}
75430 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75431 
75432     VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75433 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75434     PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75435     {
75436       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs );
75437       return *this;
75438     }
75439 
setPNextVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75440     PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75441     {
75442       pNext = pNext_;
75443       return *this;
75444     }
75445 
setSampleLocationsEnableVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75446     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
75447     {
75448       sampleLocationsEnable = sampleLocationsEnable_;
75449       return *this;
75450     }
75451 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75452     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
75453     {
75454       sampleLocationsInfo = sampleLocationsInfo_;
75455       return *this;
75456     }
75457 
75458 
operator VkPipelineSampleLocationsStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75459     operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75460     {
75461       return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
75462     }
75463 
operator VkPipelineSampleLocationsStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75464     operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75465     {
75466       return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
75467     }
75468 
75469 
75470 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75471     auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const& ) const = default;
75472 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75473     bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75474     {
75475       return ( sType == rhs.sType )
75476           && ( pNext == rhs.pNext )
75477           && ( sampleLocationsEnable == rhs.sampleLocationsEnable )
75478           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
75479     }
75480 
operator !=VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75481     bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75482     {
75483       return !operator==( rhs );
75484     }
75485 #endif
75486 
75487 
75488 
75489   public:
75490     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
75491     const void* pNext = {};
75492     VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {};
75493     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
75494 
75495   };
75496   static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" );
75497   static_assert( std::is_standard_layout<PipelineSampleLocationsStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75498 
75499   template <>
75500   struct CppType<StructureType, StructureType::ePipelineSampleLocationsStateCreateInfoEXT>
75501   {
75502     using Type = PipelineSampleLocationsStateCreateInfoEXT;
75503   };
75504 
75505   struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
75506   {
75507     static const bool allowDuplicate = false;
75508     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
75509 
75510 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75511     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(uint32_t requiredSubgroupSize_ = {}) VULKAN_HPP_NOEXCEPT
75512     : requiredSubgroupSize( requiredSubgroupSize_ )
75513     {}
75514 
75515     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75516 
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75517     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75518       : PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( *reinterpret_cast<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const *>( &rhs ) )
75519     {}
75520 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75521 
75522     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75523 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75524     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75525     {
75526       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const *>( &rhs );
75527       return *this;
75528     }
75529 
75530 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75531     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75532     {
75533       return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
75534     }
75535 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75536     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75537     {
75538       return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
75539     }
75540 
75541 
75542 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75543     auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& ) const = default;
75544 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75545     bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75546     {
75547       return ( sType == rhs.sType )
75548           && ( pNext == rhs.pNext )
75549           && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
75550     }
75551 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75552     bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75553     {
75554       return !operator==( rhs );
75555     }
75556 #endif
75557 
75558 
75559 
75560   public:
75561     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
75562     void* pNext = {};
75563     uint32_t requiredSubgroupSize = {};
75564 
75565   };
75566   static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" );
75567   static_assert( std::is_standard_layout<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75568 
75569   template <>
75570   struct CppType<StructureType, StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>
75571   {
75572     using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
75573   };
75574 
75575   struct PipelineTessellationDomainOriginStateCreateInfo
75576   {
75577     static const bool allowDuplicate = false;
75578     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
75579 
75580 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75581     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft) VULKAN_HPP_NOEXCEPT
75582     : domainOrigin( domainOrigin_ )
75583     {}
75584 
75585     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75586 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75587     PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75588       : PipelineTessellationDomainOriginStateCreateInfo( *reinterpret_cast<PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs ) )
75589     {}
75590 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75591 
75592     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75593 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75594     PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75595     {
75596       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs );
75597       return *this;
75598     }
75599 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75600     PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75601     {
75602       pNext = pNext_;
75603       return *this;
75604     }
75605 
setDomainOriginVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75606     PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
75607     {
75608       domainOrigin = domainOrigin_;
75609       return *this;
75610     }
75611 
75612 
operator VkPipelineTessellationDomainOriginStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75613     operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
75614     {
75615       return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
75616     }
75617 
operator VkPipelineTessellationDomainOriginStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75618     operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
75619     {
75620       return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
75621     }
75622 
75623 
75624 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75625     auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const& ) const = default;
75626 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75627     bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75628     {
75629       return ( sType == rhs.sType )
75630           && ( pNext == rhs.pNext )
75631           && ( domainOrigin == rhs.domainOrigin );
75632     }
75633 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75634     bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75635     {
75636       return !operator==( rhs );
75637     }
75638 #endif
75639 
75640 
75641 
75642   public:
75643     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
75644     const void* pNext = {};
75645     VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft;
75646 
75647   };
75648   static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" );
75649   static_assert( std::is_standard_layout<PipelineTessellationDomainOriginStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
75650 
75651   template <>
75652   struct CppType<StructureType, StructureType::ePipelineTessellationDomainOriginStateCreateInfo>
75653   {
75654     using Type = PipelineTessellationDomainOriginStateCreateInfo;
75655   };
75656   using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
75657 
75658   struct VertexInputBindingDivisorDescriptionEXT
75659   {
75660 
75661 
75662 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75663     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT(uint32_t binding_ = {}, uint32_t divisor_ = {}) VULKAN_HPP_NOEXCEPT
75664     : binding( binding_ ), divisor( divisor_ )
75665     {}
75666 
75667     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75668 
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75669     VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75670       : VertexInputBindingDivisorDescriptionEXT( *reinterpret_cast<VertexInputBindingDivisorDescriptionEXT const *>( &rhs ) )
75671     {}
75672 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75673 
75674     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75675 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75676     VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75677     {
75678       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>( &rhs );
75679       return *this;
75680     }
75681 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75682     VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
75683     {
75684       binding = binding_;
75685       return *this;
75686     }
75687 
setDivisorVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75688     VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
75689     {
75690       divisor = divisor_;
75691       return *this;
75692     }
75693 
75694 
operator VkVertexInputBindingDivisorDescriptionEXT const&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75695     operator VkVertexInputBindingDivisorDescriptionEXT const&() const VULKAN_HPP_NOEXCEPT
75696     {
75697       return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>( this );
75698     }
75699 
operator VkVertexInputBindingDivisorDescriptionEXT&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75700     operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
75701     {
75702       return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>( this );
75703     }
75704 
75705 
75706 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75707     auto operator<=>( VertexInputBindingDivisorDescriptionEXT const& ) const = default;
75708 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75709     bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75710     {
75711       return ( binding == rhs.binding )
75712           && ( divisor == rhs.divisor );
75713     }
75714 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75715     bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75716     {
75717       return !operator==( rhs );
75718     }
75719 #endif
75720 
75721 
75722 
75723   public:
75724     uint32_t binding = {};
75725     uint32_t divisor = {};
75726 
75727   };
75728   static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" );
75729   static_assert( std::is_standard_layout<VertexInputBindingDivisorDescriptionEXT>::value, "struct wrapper is not a standard layout!" );
75730 
75731   struct PipelineVertexInputDivisorStateCreateInfoEXT
75732   {
75733     static const bool allowDuplicate = false;
75734     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
75735 
75736 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75737     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT(uint32_t vertexBindingDivisorCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = {}) VULKAN_HPP_NOEXCEPT
75738     : vertexBindingDivisorCount( vertexBindingDivisorCount_ ), pVertexBindingDivisors( pVertexBindingDivisors_ )
75739     {}
75740 
75741     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75742 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75743     PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75744       : PipelineVertexInputDivisorStateCreateInfoEXT( *reinterpret_cast<PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs ) )
75745     {}
75746 
75747 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75748     PipelineVertexInputDivisorStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ )
75749     : vertexBindingDivisorCount( static_cast<uint32_t>( vertexBindingDivisors_.size() ) ), pVertexBindingDivisors( vertexBindingDivisors_.data() )
75750     {}
75751 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75752 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75753 
75754     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75755 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75756     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75757     {
75758       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs );
75759       return *this;
75760     }
75761 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75762     PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75763     {
75764       pNext = pNext_;
75765       return *this;
75766     }
75767 
setVertexBindingDivisorCountVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75768     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
75769     {
75770       vertexBindingDivisorCount = vertexBindingDivisorCount_;
75771       return *this;
75772     }
75773 
setPVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75774     PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
75775     {
75776       pVertexBindingDivisors = pVertexBindingDivisors_;
75777       return *this;
75778     }
75779 
75780 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75781     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
75782     {
75783       vertexBindingDivisorCount = static_cast<uint32_t>( vertexBindingDivisors_.size() );
75784       pVertexBindingDivisors = vertexBindingDivisors_.data();
75785       return *this;
75786     }
75787 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75788 
75789 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75790     operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75791     {
75792       return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
75793     }
75794 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75795     operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75796     {
75797       return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
75798     }
75799 
75800 
75801 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75802     auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const& ) const = default;
75803 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75804     bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75805     {
75806       return ( sType == rhs.sType )
75807           && ( pNext == rhs.pNext )
75808           && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount )
75809           && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
75810     }
75811 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75812     bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75813     {
75814       return !operator==( rhs );
75815     }
75816 #endif
75817 
75818 
75819 
75820   public:
75821     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
75822     const void* pNext = {};
75823     uint32_t vertexBindingDivisorCount = {};
75824     const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors = {};
75825 
75826   };
75827   static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" );
75828   static_assert( std::is_standard_layout<PipelineVertexInputDivisorStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75829 
75830   template <>
75831   struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
75832   {
75833     using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
75834   };
75835 
75836   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
75837   {
75838     static const bool allowDuplicate = false;
75839     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
75840 
75841 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75842     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
75843     : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( customSampleOrderCount_ ), pCustomSampleOrders( pCustomSampleOrders_ )
75844     {}
75845 
75846     VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75847 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75848     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75849       : PipelineViewportCoarseSampleOrderStateCreateInfoNV( *reinterpret_cast<PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs ) )
75850     {}
75851 
75852 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75853     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ )
75854     : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( static_cast<uint32_t>( customSampleOrders_.size() ) ), pCustomSampleOrders( customSampleOrders_.data() )
75855     {}
75856 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75857 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75858 
75859     VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75860 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75861     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75862     {
75863       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs );
75864       return *this;
75865     }
75866 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75867     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75868     {
75869       pNext = pNext_;
75870       return *this;
75871     }
75872 
setSampleOrderTypeVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75873     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
75874     {
75875       sampleOrderType = sampleOrderType_;
75876       return *this;
75877     }
75878 
setCustomSampleOrderCountVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75879     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
75880     {
75881       customSampleOrderCount = customSampleOrderCount_;
75882       return *this;
75883     }
75884 
setPCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75885     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
75886     {
75887       pCustomSampleOrders = pCustomSampleOrders_;
75888       return *this;
75889     }
75890 
75891 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75892     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT
75893     {
75894       customSampleOrderCount = static_cast<uint32_t>( customSampleOrders_.size() );
75895       pCustomSampleOrders = customSampleOrders_.data();
75896       return *this;
75897     }
75898 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75899 
75900 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75901     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75902     {
75903       return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
75904     }
75905 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75906     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75907     {
75908       return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
75909     }
75910 
75911 
75912 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75913     auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& ) const = default;
75914 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75915     bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75916     {
75917       return ( sType == rhs.sType )
75918           && ( pNext == rhs.pNext )
75919           && ( sampleOrderType == rhs.sampleOrderType )
75920           && ( customSampleOrderCount == rhs.customSampleOrderCount )
75921           && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
75922     }
75923 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75924     bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75925     {
75926       return !operator==( rhs );
75927     }
75928 #endif
75929 
75930 
75931 
75932   public:
75933     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
75934     const void* pNext = {};
75935     VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault;
75936     uint32_t customSampleOrderCount = {};
75937     const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders = {};
75938 
75939   };
75940   static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" );
75941   static_assert( std::is_standard_layout<PipelineViewportCoarseSampleOrderStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75942 
75943   template <>
75944   struct CppType<StructureType, StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV>
75945   {
75946     using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
75947   };
75948 
75949   struct PipelineViewportExclusiveScissorStateCreateInfoNV
75950   {
75951     static const bool allowDuplicate = false;
75952     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
75953 
75954 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75955     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV(uint32_t exclusiveScissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ = {}) VULKAN_HPP_NOEXCEPT
75956     : exclusiveScissorCount( exclusiveScissorCount_ ), pExclusiveScissors( pExclusiveScissors_ )
75957     {}
75958 
75959     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75960 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75961     PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75962       : PipelineViewportExclusiveScissorStateCreateInfoNV( *reinterpret_cast<PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs ) )
75963     {}
75964 
75965 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75966     PipelineViewportExclusiveScissorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ )
75967     : exclusiveScissorCount( static_cast<uint32_t>( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() )
75968     {}
75969 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75970 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75971 
75972     VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75973 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75974     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75975     {
75976       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs );
75977       return *this;
75978     }
75979 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75980     PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75981     {
75982       pNext = pNext_;
75983       return *this;
75984     }
75985 
setExclusiveScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75986     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT
75987     {
75988       exclusiveScissorCount = exclusiveScissorCount_;
75989       return *this;
75990     }
75991 
setPExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75992     PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
75993     {
75994       pExclusiveScissors = pExclusiveScissors_;
75995       return *this;
75996     }
75997 
75998 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75999     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
76000     {
76001       exclusiveScissorCount = static_cast<uint32_t>( exclusiveScissors_.size() );
76002       pExclusiveScissors = exclusiveScissors_.data();
76003       return *this;
76004     }
76005 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76006 
76007 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV76008     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
76009     {
76010       return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
76011     }
76012 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV76013     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
76014     {
76015       return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
76016     }
76017 
76018 
76019 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76020     auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const& ) const = default;
76021 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV76022     bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76023     {
76024       return ( sType == rhs.sType )
76025           && ( pNext == rhs.pNext )
76026           && ( exclusiveScissorCount == rhs.exclusiveScissorCount )
76027           && ( pExclusiveScissors == rhs.pExclusiveScissors );
76028     }
76029 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV76030     bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76031     {
76032       return !operator==( rhs );
76033     }
76034 #endif
76035 
76036 
76037 
76038   public:
76039     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
76040     const void* pNext = {};
76041     uint32_t exclusiveScissorCount = {};
76042     const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors = {};
76043 
76044   };
76045   static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" );
76046   static_assert( std::is_standard_layout<PipelineViewportExclusiveScissorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
76047 
76048   template <>
76049   struct CppType<StructureType, StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV>
76050   {
76051     using Type = PipelineViewportExclusiveScissorStateCreateInfoNV;
76052   };
76053 
76054   struct PipelineViewportShadingRateImageStateCreateInfoNV
76055   {
76056     static const bool allowDuplicate = false;
76057     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
76058 
76059 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76060     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ = {}) VULKAN_HPP_NOEXCEPT
76061     : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( viewportCount_ ), pShadingRatePalettes( pShadingRatePalettes_ )
76062     {}
76063 
76064     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76065 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76066     PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76067       : PipelineViewportShadingRateImageStateCreateInfoNV( *reinterpret_cast<PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs ) )
76068     {}
76069 
76070 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76071     PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ )
76072     : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( static_cast<uint32_t>( shadingRatePalettes_.size() ) ), pShadingRatePalettes( shadingRatePalettes_.data() )
76073     {}
76074 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76075 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76076 
76077     VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76078 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76079     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76080     {
76081       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs );
76082       return *this;
76083     }
76084 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76085     PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76086     {
76087       pNext = pNext_;
76088       return *this;
76089     }
76090 
setShadingRateImageEnableVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76091     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
76092     {
76093       shadingRateImageEnable = shadingRateImageEnable_;
76094       return *this;
76095     }
76096 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76097     PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
76098     {
76099       viewportCount = viewportCount_;
76100       return *this;
76101     }
76102 
setPShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76103     PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
76104     {
76105       pShadingRatePalettes = pShadingRatePalettes_;
76106       return *this;
76107     }
76108 
76109 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76110     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
76111     {
76112       viewportCount = static_cast<uint32_t>( shadingRatePalettes_.size() );
76113       pShadingRatePalettes = shadingRatePalettes_.data();
76114       return *this;
76115     }
76116 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76117 
76118 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76119     operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
76120     {
76121       return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
76122     }
76123 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76124     operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
76125     {
76126       return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
76127     }
76128 
76129 
76130 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76131     auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const& ) const = default;
76132 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76133     bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76134     {
76135       return ( sType == rhs.sType )
76136           && ( pNext == rhs.pNext )
76137           && ( shadingRateImageEnable == rhs.shadingRateImageEnable )
76138           && ( viewportCount == rhs.viewportCount )
76139           && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
76140     }
76141 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV76142     bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76143     {
76144       return !operator==( rhs );
76145     }
76146 #endif
76147 
76148 
76149 
76150   public:
76151     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
76152     const void* pNext = {};
76153     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {};
76154     uint32_t viewportCount = {};
76155     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes = {};
76156 
76157   };
76158   static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" );
76159   static_assert( std::is_standard_layout<PipelineViewportShadingRateImageStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
76160 
76161   template <>
76162   struct CppType<StructureType, StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV>
76163   {
76164     using Type = PipelineViewportShadingRateImageStateCreateInfoNV;
76165   };
76166 
76167   struct ViewportSwizzleNV
76168   {
76169 
76170 
76171 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV76172     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
76173     : x( x_ ), y( y_ ), z( z_ ), w( w_ )
76174     {}
76175 
76176     VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76177 
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV76178     ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
76179       : ViewportSwizzleNV( *reinterpret_cast<ViewportSwizzleNV const *>( &rhs ) )
76180     {}
76181 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76182 
76183     VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76184 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV76185     ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
76186     {
76187       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const *>( &rhs );
76188       return *this;
76189     }
76190 
setXVULKAN_HPP_NAMESPACE::ViewportSwizzleNV76191     ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
76192     {
76193       x = x_;
76194       return *this;
76195     }
76196 
setYVULKAN_HPP_NAMESPACE::ViewportSwizzleNV76197     ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT
76198     {
76199       y = y_;
76200       return *this;
76201     }
76202 
setZVULKAN_HPP_NAMESPACE::ViewportSwizzleNV76203     ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT
76204     {
76205       z = z_;
76206       return *this;
76207     }
76208 
setWVULKAN_HPP_NAMESPACE::ViewportSwizzleNV76209     ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT
76210     {
76211       w = w_;
76212       return *this;
76213     }
76214 
76215 
operator VkViewportSwizzleNV const&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV76216     operator VkViewportSwizzleNV const&() const VULKAN_HPP_NOEXCEPT
76217     {
76218       return *reinterpret_cast<const VkViewportSwizzleNV*>( this );
76219     }
76220 
operator VkViewportSwizzleNV&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV76221     operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
76222     {
76223       return *reinterpret_cast<VkViewportSwizzleNV*>( this );
76224     }
76225 
76226 
76227 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76228     auto operator<=>( ViewportSwizzleNV const& ) const = default;
76229 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportSwizzleNV76230     bool operator==( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76231     {
76232       return ( x == rhs.x )
76233           && ( y == rhs.y )
76234           && ( z == rhs.z )
76235           && ( w == rhs.w );
76236     }
76237 
operator !=VULKAN_HPP_NAMESPACE::ViewportSwizzleNV76238     bool operator!=( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76239     {
76240       return !operator==( rhs );
76241     }
76242 #endif
76243 
76244 
76245 
76246   public:
76247     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
76248     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
76249     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
76250     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
76251 
76252   };
76253   static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" );
76254   static_assert( std::is_standard_layout<ViewportSwizzleNV>::value, "struct wrapper is not a standard layout!" );
76255 
76256   struct PipelineViewportSwizzleStateCreateInfoNV
76257   {
76258     static const bool allowDuplicate = false;
76259     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
76260 
76261 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76262     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ = {}) VULKAN_HPP_NOEXCEPT
76263     : flags( flags_ ), viewportCount( viewportCount_ ), pViewportSwizzles( pViewportSwizzles_ )
76264     {}
76265 
76266     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76267 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76268     PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76269       : PipelineViewportSwizzleStateCreateInfoNV( *reinterpret_cast<PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs ) )
76270     {}
76271 
76272 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76273     PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ )
76274     : flags( flags_ ), viewportCount( static_cast<uint32_t>( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() )
76275     {}
76276 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76277 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76278 
76279     VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76280 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76281     PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76282     {
76283       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs );
76284       return *this;
76285     }
76286 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76287     PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76288     {
76289       pNext = pNext_;
76290       return *this;
76291     }
76292 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76293     PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
76294     {
76295       flags = flags_;
76296       return *this;
76297     }
76298 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76299     PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
76300     {
76301       viewportCount = viewportCount_;
76302       return *this;
76303     }
76304 
setPViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76305     PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
76306     {
76307       pViewportSwizzles = pViewportSwizzles_;
76308       return *this;
76309     }
76310 
76311 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76312     PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
76313     {
76314       viewportCount = static_cast<uint32_t>( viewportSwizzles_.size() );
76315       pViewportSwizzles = viewportSwizzles_.data();
76316       return *this;
76317     }
76318 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76319 
76320 
operator VkPipelineViewportSwizzleStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76321     operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
76322     {
76323       return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
76324     }
76325 
operator VkPipelineViewportSwizzleStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76326     operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
76327     {
76328       return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
76329     }
76330 
76331 
76332 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76333     auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const& ) const = default;
76334 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76335     bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76336     {
76337       return ( sType == rhs.sType )
76338           && ( pNext == rhs.pNext )
76339           && ( flags == rhs.flags )
76340           && ( viewportCount == rhs.viewportCount )
76341           && ( pViewportSwizzles == rhs.pViewportSwizzles );
76342     }
76343 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76344     bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76345     {
76346       return !operator==( rhs );
76347     }
76348 #endif
76349 
76350 
76351 
76352   public:
76353     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
76354     const void* pNext = {};
76355     VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {};
76356     uint32_t viewportCount = {};
76357     const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles = {};
76358 
76359   };
76360   static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" );
76361   static_assert( std::is_standard_layout<PipelineViewportSwizzleStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
76362 
76363   template <>
76364   struct CppType<StructureType, StructureType::ePipelineViewportSwizzleStateCreateInfoNV>
76365   {
76366     using Type = PipelineViewportSwizzleStateCreateInfoNV;
76367   };
76368 
76369   struct PipelineViewportWScalingStateCreateInfoNV
76370   {
76371     static const bool allowDuplicate = false;
76372     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
76373 
76374 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76375     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ = {}) VULKAN_HPP_NOEXCEPT
76376     : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( viewportCount_ ), pViewportWScalings( pViewportWScalings_ )
76377     {}
76378 
76379     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76380 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76381     PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76382       : PipelineViewportWScalingStateCreateInfoNV( *reinterpret_cast<PipelineViewportWScalingStateCreateInfoNV const *>( &rhs ) )
76383     {}
76384 
76385 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76386     PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ )
76387     : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( static_cast<uint32_t>( viewportWScalings_.size() ) ), pViewportWScalings( viewportWScalings_.data() )
76388     {}
76389 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76390 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76391 
76392     VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76393 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76394     PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76395     {
76396       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const *>( &rhs );
76397       return *this;
76398     }
76399 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76400     PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76401     {
76402       pNext = pNext_;
76403       return *this;
76404     }
76405 
setViewportWScalingEnableVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76406     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
76407     {
76408       viewportWScalingEnable = viewportWScalingEnable_;
76409       return *this;
76410     }
76411 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76412     PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
76413     {
76414       viewportCount = viewportCount_;
76415       return *this;
76416     }
76417 
setPViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76418     PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
76419     {
76420       pViewportWScalings = pViewportWScalings_;
76421       return *this;
76422     }
76423 
76424 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76425     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT
76426     {
76427       viewportCount = static_cast<uint32_t>( viewportWScalings_.size() );
76428       pViewportWScalings = viewportWScalings_.data();
76429       return *this;
76430     }
76431 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76432 
76433 
operator VkPipelineViewportWScalingStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76434     operator VkPipelineViewportWScalingStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
76435     {
76436       return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>( this );
76437     }
76438 
operator VkPipelineViewportWScalingStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76439     operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
76440     {
76441       return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>( this );
76442     }
76443 
76444 
76445 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76446     auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const& ) const = default;
76447 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76448     bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76449     {
76450       return ( sType == rhs.sType )
76451           && ( pNext == rhs.pNext )
76452           && ( viewportWScalingEnable == rhs.viewportWScalingEnable )
76453           && ( viewportCount == rhs.viewportCount )
76454           && ( pViewportWScalings == rhs.pViewportWScalings );
76455     }
76456 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76457     bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76458     {
76459       return !operator==( rhs );
76460     }
76461 #endif
76462 
76463 
76464 
76465   public:
76466     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
76467     const void* pNext = {};
76468     VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {};
76469     uint32_t viewportCount = {};
76470     const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings = {};
76471 
76472   };
76473   static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" );
76474   static_assert( std::is_standard_layout<PipelineViewportWScalingStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
76475 
76476   template <>
76477   struct CppType<StructureType, StructureType::ePipelineViewportWScalingStateCreateInfoNV>
76478   {
76479     using Type = PipelineViewportWScalingStateCreateInfoNV;
76480   };
76481 
76482 #ifdef VK_USE_PLATFORM_GGP
76483   struct PresentFrameTokenGGP
76484   {
76485     static const bool allowDuplicate = false;
76486     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP;
76487 
76488 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76489     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP(GgpFrameToken frameToken_ = {}) VULKAN_HPP_NOEXCEPT
76490     : frameToken( frameToken_ )
76491     {}
76492 
76493     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76494 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76495     PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
76496       : PresentFrameTokenGGP( *reinterpret_cast<PresentFrameTokenGGP const *>( &rhs ) )
76497     {}
76498 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76499 
76500     VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76501 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76502     PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
76503     {
76504       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const *>( &rhs );
76505       return *this;
76506     }
76507 
setPNextVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76508     PresentFrameTokenGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76509     {
76510       pNext = pNext_;
76511       return *this;
76512     }
76513 
setFrameTokenVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76514     PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT
76515     {
76516       frameToken = frameToken_;
76517       return *this;
76518     }
76519 
76520 
operator VkPresentFrameTokenGGP const&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76521     operator VkPresentFrameTokenGGP const&() const VULKAN_HPP_NOEXCEPT
76522     {
76523       return *reinterpret_cast<const VkPresentFrameTokenGGP*>( this );
76524     }
76525 
operator VkPresentFrameTokenGGP&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76526     operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
76527     {
76528       return *reinterpret_cast<VkPresentFrameTokenGGP*>( this );
76529     }
76530 
76531 
76532 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76533     auto operator<=>( PresentFrameTokenGGP const& ) const = default;
76534 #else
operator ==VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76535     bool operator==( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
76536     {
76537       return ( sType == rhs.sType )
76538           && ( pNext == rhs.pNext )
76539           && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 );
76540     }
76541 
operator !=VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76542     bool operator!=( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
76543     {
76544       return !operator==( rhs );
76545     }
76546 #endif
76547 
76548 
76549 
76550   public:
76551     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP;
76552     const void* pNext = {};
76553     GgpFrameToken frameToken = {};
76554 
76555   };
76556   static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" );
76557   static_assert( std::is_standard_layout<PresentFrameTokenGGP>::value, "struct wrapper is not a standard layout!" );
76558 
76559   template <>
76560   struct CppType<StructureType, StructureType::ePresentFrameTokenGGP>
76561   {
76562     using Type = PresentFrameTokenGGP;
76563   };
76564 #endif /*VK_USE_PLATFORM_GGP*/
76565 
76566   struct RectLayerKHR
76567   {
76568 
76569 
76570 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR76571     VULKAN_HPP_CONSTEXPR RectLayerKHR(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {}) VULKAN_HPP_NOEXCEPT
76572     : offset( offset_ ), extent( extent_ ), layer( layer_ )
76573     {}
76574 
76575     VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76576 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR76577     RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76578       : RectLayerKHR( *reinterpret_cast<RectLayerKHR const *>( &rhs ) )
76579     {}
76580 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR76581     explicit RectLayerKHR( Rect2D const& rect2D, uint32_t layer_ = {} )
76582       : offset( rect2D.offset )
76583       , extent( rect2D.extent )
76584       , layer( layer_ )
76585     {}
76586 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76587 
76588     VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76589 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR76590     RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76591     {
76592       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RectLayerKHR const *>( &rhs );
76593       return *this;
76594     }
76595 
setOffsetVULKAN_HPP_NAMESPACE::RectLayerKHR76596     RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
76597     {
76598       offset = offset_;
76599       return *this;
76600     }
76601 
setExtentVULKAN_HPP_NAMESPACE::RectLayerKHR76602     RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
76603     {
76604       extent = extent_;
76605       return *this;
76606     }
76607 
setLayerVULKAN_HPP_NAMESPACE::RectLayerKHR76608     RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT
76609     {
76610       layer = layer_;
76611       return *this;
76612     }
76613 
76614 
operator VkRectLayerKHR const&VULKAN_HPP_NAMESPACE::RectLayerKHR76615     operator VkRectLayerKHR const&() const VULKAN_HPP_NOEXCEPT
76616     {
76617       return *reinterpret_cast<const VkRectLayerKHR*>( this );
76618     }
76619 
operator VkRectLayerKHR&VULKAN_HPP_NAMESPACE::RectLayerKHR76620     operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
76621     {
76622       return *reinterpret_cast<VkRectLayerKHR*>( this );
76623     }
76624 
76625 
76626 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76627     auto operator<=>( RectLayerKHR const& ) const = default;
76628 #else
operator ==VULKAN_HPP_NAMESPACE::RectLayerKHR76629     bool operator==( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76630     {
76631       return ( offset == rhs.offset )
76632           && ( extent == rhs.extent )
76633           && ( layer == rhs.layer );
76634     }
76635 
operator !=VULKAN_HPP_NAMESPACE::RectLayerKHR76636     bool operator!=( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76637     {
76638       return !operator==( rhs );
76639     }
76640 #endif
76641 
76642 
76643 
76644   public:
76645     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
76646     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
76647     uint32_t layer = {};
76648 
76649   };
76650   static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" );
76651   static_assert( std::is_standard_layout<RectLayerKHR>::value, "struct wrapper is not a standard layout!" );
76652 
76653   struct PresentRegionKHR
76654   {
76655 
76656 
76657 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR76658     VULKAN_HPP_CONSTEXPR PresentRegionKHR(uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ = {}) VULKAN_HPP_NOEXCEPT
76659     : rectangleCount( rectangleCount_ ), pRectangles( pRectangles_ )
76660     {}
76661 
76662     VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76663 
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR76664     PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76665       : PresentRegionKHR( *reinterpret_cast<PresentRegionKHR const *>( &rhs ) )
76666     {}
76667 
76668 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR76669     PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ )
76670     : rectangleCount( static_cast<uint32_t>( rectangles_.size() ) ), pRectangles( rectangles_.data() )
76671     {}
76672 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76673 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76674 
76675     VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76676 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR76677     PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76678     {
76679       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionKHR const *>( &rhs );
76680       return *this;
76681     }
76682 
setRectangleCountVULKAN_HPP_NAMESPACE::PresentRegionKHR76683     PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
76684     {
76685       rectangleCount = rectangleCount_;
76686       return *this;
76687     }
76688 
setPRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR76689     PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ ) VULKAN_HPP_NOEXCEPT
76690     {
76691       pRectangles = pRectangles_;
76692       return *this;
76693     }
76694 
76695 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR76696     PresentRegionKHR & setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ ) VULKAN_HPP_NOEXCEPT
76697     {
76698       rectangleCount = static_cast<uint32_t>( rectangles_.size() );
76699       pRectangles = rectangles_.data();
76700       return *this;
76701     }
76702 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76703 
76704 
operator VkPresentRegionKHR const&VULKAN_HPP_NAMESPACE::PresentRegionKHR76705     operator VkPresentRegionKHR const&() const VULKAN_HPP_NOEXCEPT
76706     {
76707       return *reinterpret_cast<const VkPresentRegionKHR*>( this );
76708     }
76709 
operator VkPresentRegionKHR&VULKAN_HPP_NAMESPACE::PresentRegionKHR76710     operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
76711     {
76712       return *reinterpret_cast<VkPresentRegionKHR*>( this );
76713     }
76714 
76715 
76716 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76717     auto operator<=>( PresentRegionKHR const& ) const = default;
76718 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionKHR76719     bool operator==( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76720     {
76721       return ( rectangleCount == rhs.rectangleCount )
76722           && ( pRectangles == rhs.pRectangles );
76723     }
76724 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionKHR76725     bool operator!=( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76726     {
76727       return !operator==( rhs );
76728     }
76729 #endif
76730 
76731 
76732 
76733   public:
76734     uint32_t rectangleCount = {};
76735     const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles = {};
76736 
76737   };
76738   static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" );
76739   static_assert( std::is_standard_layout<PresentRegionKHR>::value, "struct wrapper is not a standard layout!" );
76740 
76741   struct PresentRegionsKHR
76742   {
76743     static const bool allowDuplicate = false;
76744     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR;
76745 
76746 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR76747     VULKAN_HPP_CONSTEXPR PresentRegionsKHR(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
76748     : swapchainCount( swapchainCount_ ), pRegions( pRegions_ )
76749     {}
76750 
76751     VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76752 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR76753     PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76754       : PresentRegionsKHR( *reinterpret_cast<PresentRegionsKHR const *>( &rhs ) )
76755     {}
76756 
76757 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR76758     PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ )
76759     : swapchainCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
76760     {}
76761 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76762 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76763 
76764     VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76765 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR76766     PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76767     {
76768       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionsKHR const *>( &rhs );
76769       return *this;
76770     }
76771 
setPNextVULKAN_HPP_NAMESPACE::PresentRegionsKHR76772     PresentRegionsKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76773     {
76774       pNext = pNext_;
76775       return *this;
76776     }
76777 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentRegionsKHR76778     PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
76779     {
76780       swapchainCount = swapchainCount_;
76781       return *this;
76782     }
76783 
setPRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR76784     PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
76785     {
76786       pRegions = pRegions_;
76787       return *this;
76788     }
76789 
76790 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR76791     PresentRegionsKHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
76792     {
76793       swapchainCount = static_cast<uint32_t>( regions_.size() );
76794       pRegions = regions_.data();
76795       return *this;
76796     }
76797 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76798 
76799 
operator VkPresentRegionsKHR const&VULKAN_HPP_NAMESPACE::PresentRegionsKHR76800     operator VkPresentRegionsKHR const&() const VULKAN_HPP_NOEXCEPT
76801     {
76802       return *reinterpret_cast<const VkPresentRegionsKHR*>( this );
76803     }
76804 
operator VkPresentRegionsKHR&VULKAN_HPP_NAMESPACE::PresentRegionsKHR76805     operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
76806     {
76807       return *reinterpret_cast<VkPresentRegionsKHR*>( this );
76808     }
76809 
76810 
76811 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76812     auto operator<=>( PresentRegionsKHR const& ) const = default;
76813 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionsKHR76814     bool operator==( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76815     {
76816       return ( sType == rhs.sType )
76817           && ( pNext == rhs.pNext )
76818           && ( swapchainCount == rhs.swapchainCount )
76819           && ( pRegions == rhs.pRegions );
76820     }
76821 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionsKHR76822     bool operator!=( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76823     {
76824       return !operator==( rhs );
76825     }
76826 #endif
76827 
76828 
76829 
76830   public:
76831     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR;
76832     const void* pNext = {};
76833     uint32_t swapchainCount = {};
76834     const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions = {};
76835 
76836   };
76837   static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" );
76838   static_assert( std::is_standard_layout<PresentRegionsKHR>::value, "struct wrapper is not a standard layout!" );
76839 
76840   template <>
76841   struct CppType<StructureType, StructureType::ePresentRegionsKHR>
76842   {
76843     using Type = PresentRegionsKHR;
76844   };
76845 
76846   struct PresentTimeGOOGLE
76847   {
76848 
76849 
76850 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76851     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}) VULKAN_HPP_NOEXCEPT
76852     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ )
76853     {}
76854 
76855     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76856 
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76857     PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76858       : PresentTimeGOOGLE( *reinterpret_cast<PresentTimeGOOGLE const *>( &rhs ) )
76859     {}
76860 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76861 
76862     VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76863 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76864     PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76865     {
76866       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const *>( &rhs );
76867       return *this;
76868     }
76869 
setPresentIDVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76870     PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
76871     {
76872       presentID = presentID_;
76873       return *this;
76874     }
76875 
setDesiredPresentTimeVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76876     PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT
76877     {
76878       desiredPresentTime = desiredPresentTime_;
76879       return *this;
76880     }
76881 
76882 
operator VkPresentTimeGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76883     operator VkPresentTimeGOOGLE const&() const VULKAN_HPP_NOEXCEPT
76884     {
76885       return *reinterpret_cast<const VkPresentTimeGOOGLE*>( this );
76886     }
76887 
operator VkPresentTimeGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76888     operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
76889     {
76890       return *reinterpret_cast<VkPresentTimeGOOGLE*>( this );
76891     }
76892 
76893 
76894 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76895     auto operator<=>( PresentTimeGOOGLE const& ) const = default;
76896 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76897     bool operator==( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76898     {
76899       return ( presentID == rhs.presentID )
76900           && ( desiredPresentTime == rhs.desiredPresentTime );
76901     }
76902 
operator !=VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76903     bool operator!=( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76904     {
76905       return !operator==( rhs );
76906     }
76907 #endif
76908 
76909 
76910 
76911   public:
76912     uint32_t presentID = {};
76913     uint64_t desiredPresentTime = {};
76914 
76915   };
76916   static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" );
76917   static_assert( std::is_standard_layout<PresentTimeGOOGLE>::value, "struct wrapper is not a standard layout!" );
76918 
76919   struct PresentTimesInfoGOOGLE
76920   {
76921     static const bool allowDuplicate = false;
76922     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE;
76923 
76924 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76925     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ = {}) VULKAN_HPP_NOEXCEPT
76926     : swapchainCount( swapchainCount_ ), pTimes( pTimes_ )
76927     {}
76928 
76929     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76930 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76931     PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76932       : PresentTimesInfoGOOGLE( *reinterpret_cast<PresentTimesInfoGOOGLE const *>( &rhs ) )
76933     {}
76934 
76935 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76936     PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ )
76937     : swapchainCount( static_cast<uint32_t>( times_.size() ) ), pTimes( times_.data() )
76938     {}
76939 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76940 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76941 
76942     VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76943 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76944     PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76945     {
76946       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const *>( &rhs );
76947       return *this;
76948     }
76949 
setPNextVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76950     PresentTimesInfoGOOGLE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76951     {
76952       pNext = pNext_;
76953       return *this;
76954     }
76955 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76956     PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
76957     {
76958       swapchainCount = swapchainCount_;
76959       return *this;
76960     }
76961 
setPTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76962     PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ ) VULKAN_HPP_NOEXCEPT
76963     {
76964       pTimes = pTimes_;
76965       return *this;
76966     }
76967 
76968 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76969     PresentTimesInfoGOOGLE & setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ ) VULKAN_HPP_NOEXCEPT
76970     {
76971       swapchainCount = static_cast<uint32_t>( times_.size() );
76972       pTimes = times_.data();
76973       return *this;
76974     }
76975 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76976 
76977 
operator VkPresentTimesInfoGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76978     operator VkPresentTimesInfoGOOGLE const&() const VULKAN_HPP_NOEXCEPT
76979     {
76980       return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>( this );
76981     }
76982 
operator VkPresentTimesInfoGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76983     operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
76984     {
76985       return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>( this );
76986     }
76987 
76988 
76989 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76990     auto operator<=>( PresentTimesInfoGOOGLE const& ) const = default;
76991 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76992     bool operator==( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76993     {
76994       return ( sType == rhs.sType )
76995           && ( pNext == rhs.pNext )
76996           && ( swapchainCount == rhs.swapchainCount )
76997           && ( pTimes == rhs.pTimes );
76998     }
76999 
operator !=VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE77000     bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
77001     {
77002       return !operator==( rhs );
77003     }
77004 #endif
77005 
77006 
77007 
77008   public:
77009     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
77010     const void* pNext = {};
77011     uint32_t swapchainCount = {};
77012     const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes = {};
77013 
77014   };
77015   static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" );
77016   static_assert( std::is_standard_layout<PresentTimesInfoGOOGLE>::value, "struct wrapper is not a standard layout!" );
77017 
77018   template <>
77019   struct CppType<StructureType, StructureType::ePresentTimesInfoGOOGLE>
77020   {
77021     using Type = PresentTimesInfoGOOGLE;
77022   };
77023 
77024   struct ProtectedSubmitInfo
77025   {
77026     static const bool allowDuplicate = false;
77027     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo;
77028 
77029 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77030     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo(VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}) VULKAN_HPP_NOEXCEPT
77031     : protectedSubmit( protectedSubmit_ )
77032     {}
77033 
77034     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77035 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77036     ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77037       : ProtectedSubmitInfo( *reinterpret_cast<ProtectedSubmitInfo const *>( &rhs ) )
77038     {}
77039 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77040 
77041     VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77042 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77043     ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77044     {
77045       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const *>( &rhs );
77046       return *this;
77047     }
77048 
setPNextVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77049     ProtectedSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77050     {
77051       pNext = pNext_;
77052       return *this;
77053     }
77054 
setProtectedSubmitVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77055     ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT
77056     {
77057       protectedSubmit = protectedSubmit_;
77058       return *this;
77059     }
77060 
77061 
operator VkProtectedSubmitInfo const&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77062     operator VkProtectedSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
77063     {
77064       return *reinterpret_cast<const VkProtectedSubmitInfo*>( this );
77065     }
77066 
operator VkProtectedSubmitInfo&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77067     operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
77068     {
77069       return *reinterpret_cast<VkProtectedSubmitInfo*>( this );
77070     }
77071 
77072 
77073 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77074     auto operator<=>( ProtectedSubmitInfo const& ) const = default;
77075 #else
operator ==VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77076     bool operator==( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77077     {
77078       return ( sType == rhs.sType )
77079           && ( pNext == rhs.pNext )
77080           && ( protectedSubmit == rhs.protectedSubmit );
77081     }
77082 
operator !=VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo77083     bool operator!=( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77084     {
77085       return !operator==( rhs );
77086     }
77087 #endif
77088 
77089 
77090 
77091   public:
77092     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo;
77093     const void* pNext = {};
77094     VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {};
77095 
77096   };
77097   static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" );
77098   static_assert( std::is_standard_layout<ProtectedSubmitInfo>::value, "struct wrapper is not a standard layout!" );
77099 
77100   template <>
77101   struct CppType<StructureType, StructureType::eProtectedSubmitInfo>
77102   {
77103     using Type = ProtectedSubmitInfo;
77104   };
77105 
77106   struct QueryPoolPerformanceQueryCreateInfoINTEL
77107   {
77108     static const bool allowDuplicate = false;
77109     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
77110 
77111 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77112     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual) VULKAN_HPP_NOEXCEPT
77113     : performanceCountersSampling( performanceCountersSampling_ )
77114     {}
77115 
77116     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77117 
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77118     QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
77119       : QueryPoolPerformanceQueryCreateInfoINTEL( *reinterpret_cast<QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs ) )
77120     {}
77121 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77122 
77123     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77124 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77125     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
77126     {
77127       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs );
77128       return *this;
77129     }
77130 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77131     QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77132     {
77133       pNext = pNext_;
77134       return *this;
77135     }
77136 
setPerformanceCountersSamplingVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77137     QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
77138     {
77139       performanceCountersSampling = performanceCountersSampling_;
77140       return *this;
77141     }
77142 
77143 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77144     operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
77145     {
77146       return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
77147     }
77148 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77149     operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
77150     {
77151       return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
77152     }
77153 
77154 
77155 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77156     auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const& ) const = default;
77157 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77158     bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
77159     {
77160       return ( sType == rhs.sType )
77161           && ( pNext == rhs.pNext )
77162           && ( performanceCountersSampling == rhs.performanceCountersSampling );
77163     }
77164 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL77165     bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
77166     {
77167       return !operator==( rhs );
77168     }
77169 #endif
77170 
77171 
77172 
77173   public:
77174     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
77175     const void* pNext = {};
77176     VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual;
77177 
77178   };
77179   static_assert( sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) == sizeof( VkQueryPoolPerformanceQueryCreateInfoINTEL ), "struct and wrapper have different size!" );
77180   static_assert( std::is_standard_layout<QueryPoolPerformanceQueryCreateInfoINTEL>::value, "struct wrapper is not a standard layout!" );
77181 
77182   template <>
77183   struct CppType<StructureType, StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL>
77184   {
77185     using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
77186   };
77187   using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
77188 
77189   struct QueueFamilyCheckpointProperties2NV
77190   {
77191     static const bool allowDuplicate = false;
77192     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointProperties2Nv;
77193 
77194 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyCheckpointProperties2NVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV77195     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR checkpointExecutionStageMask_ = {}) VULKAN_HPP_NOEXCEPT
77196     : checkpointExecutionStageMask( checkpointExecutionStageMask_ )
77197     {}
77198 
77199     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77200 
QueueFamilyCheckpointProperties2NVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV77201     QueueFamilyCheckpointProperties2NV( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT
77202       : QueueFamilyCheckpointProperties2NV( *reinterpret_cast<QueueFamilyCheckpointProperties2NV const *>( &rhs ) )
77203     {}
77204 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77205 
77206     VULKAN_HPP_CONSTEXPR_14 QueueFamilyCheckpointProperties2NV & operator=( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77207 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV77208     QueueFamilyCheckpointProperties2NV & operator=( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT
77209     {
77210       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV const *>( &rhs );
77211       return *this;
77212     }
77213 
77214 
operator VkQueueFamilyCheckpointProperties2NV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV77215     operator VkQueueFamilyCheckpointProperties2NV const&() const VULKAN_HPP_NOEXCEPT
77216     {
77217       return *reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>( this );
77218     }
77219 
operator VkQueueFamilyCheckpointProperties2NV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV77220     operator VkQueueFamilyCheckpointProperties2NV &() VULKAN_HPP_NOEXCEPT
77221     {
77222       return *reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>( this );
77223     }
77224 
77225 
77226 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77227     auto operator<=>( QueueFamilyCheckpointProperties2NV const& ) const = default;
77228 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV77229     bool operator==( QueueFamilyCheckpointProperties2NV const& rhs ) const VULKAN_HPP_NOEXCEPT
77230     {
77231       return ( sType == rhs.sType )
77232           && ( pNext == rhs.pNext )
77233           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
77234     }
77235 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV77236     bool operator!=( QueueFamilyCheckpointProperties2NV const& rhs ) const VULKAN_HPP_NOEXCEPT
77237     {
77238       return !operator==( rhs );
77239     }
77240 #endif
77241 
77242 
77243 
77244   public:
77245     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointProperties2Nv;
77246     void* pNext = {};
77247     VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR checkpointExecutionStageMask = {};
77248 
77249   };
77250   static_assert( sizeof( QueueFamilyCheckpointProperties2NV ) == sizeof( VkQueueFamilyCheckpointProperties2NV ), "struct and wrapper have different size!" );
77251   static_assert( std::is_standard_layout<QueueFamilyCheckpointProperties2NV>::value, "struct wrapper is not a standard layout!" );
77252 
77253   template <>
77254   struct CppType<StructureType, StructureType::eQueueFamilyCheckpointProperties2Nv>
77255   {
77256     using Type = QueueFamilyCheckpointProperties2NV;
77257   };
77258 
77259   struct QueueFamilyCheckpointPropertiesNV
77260   {
77261     static const bool allowDuplicate = false;
77262     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV;
77263 
77264 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV77265     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV(VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {}) VULKAN_HPP_NOEXCEPT
77266     : checkpointExecutionStageMask( checkpointExecutionStageMask_ )
77267     {}
77268 
77269     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77270 
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV77271     QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
77272       : QueueFamilyCheckpointPropertiesNV( *reinterpret_cast<QueueFamilyCheckpointPropertiesNV const *>( &rhs ) )
77273     {}
77274 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77275 
77276     VULKAN_HPP_CONSTEXPR_14 QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77277 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV77278     QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
77279     {
77280       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const *>( &rhs );
77281       return *this;
77282     }
77283 
77284 
operator VkQueueFamilyCheckpointPropertiesNV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV77285     operator VkQueueFamilyCheckpointPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
77286     {
77287       return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>( this );
77288     }
77289 
operator VkQueueFamilyCheckpointPropertiesNV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV77290     operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
77291     {
77292       return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>( this );
77293     }
77294 
77295 
77296 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77297     auto operator<=>( QueueFamilyCheckpointPropertiesNV const& ) const = default;
77298 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV77299     bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
77300     {
77301       return ( sType == rhs.sType )
77302           && ( pNext == rhs.pNext )
77303           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
77304     }
77305 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV77306     bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
77307     {
77308       return !operator==( rhs );
77309     }
77310 #endif
77311 
77312 
77313 
77314   public:
77315     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
77316     void* pNext = {};
77317     VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {};
77318 
77319   };
77320   static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" );
77321   static_assert( std::is_standard_layout<QueueFamilyCheckpointPropertiesNV>::value, "struct wrapper is not a standard layout!" );
77322 
77323   template <>
77324   struct CppType<StructureType, StructureType::eQueueFamilyCheckpointPropertiesNV>
77325   {
77326     using Type = QueueFamilyCheckpointPropertiesNV;
77327   };
77328 
77329   struct RenderPassAttachmentBeginInfo
77330   {
77331     static const bool allowDuplicate = false;
77332     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo;
77333 
77334 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77335     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo(uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}) VULKAN_HPP_NOEXCEPT
77336     : attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ )
77337     {}
77338 
77339     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77340 
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77341     RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77342       : RenderPassAttachmentBeginInfo( *reinterpret_cast<RenderPassAttachmentBeginInfo const *>( &rhs ) )
77343     {}
77344 
77345 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77346     RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ )
77347     : attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() )
77348     {}
77349 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77350 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77351 
77352     VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77353 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77354     RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77355     {
77356       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const *>( &rhs );
77357       return *this;
77358     }
77359 
setPNextVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77360     RenderPassAttachmentBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77361     {
77362       pNext = pNext_;
77363       return *this;
77364     }
77365 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77366     RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
77367     {
77368       attachmentCount = attachmentCount_;
77369       return *this;
77370     }
77371 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77372     RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
77373     {
77374       pAttachments = pAttachments_;
77375       return *this;
77376     }
77377 
77378 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77379     RenderPassAttachmentBeginInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
77380     {
77381       attachmentCount = static_cast<uint32_t>( attachments_.size() );
77382       pAttachments = attachments_.data();
77383       return *this;
77384     }
77385 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77386 
77387 
operator VkRenderPassAttachmentBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77388     operator VkRenderPassAttachmentBeginInfo const&() const VULKAN_HPP_NOEXCEPT
77389     {
77390       return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>( this );
77391     }
77392 
operator VkRenderPassAttachmentBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77393     operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
77394     {
77395       return *reinterpret_cast<VkRenderPassAttachmentBeginInfo*>( this );
77396     }
77397 
77398 
77399 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77400     auto operator<=>( RenderPassAttachmentBeginInfo const& ) const = default;
77401 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77402     bool operator==( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77403     {
77404       return ( sType == rhs.sType )
77405           && ( pNext == rhs.pNext )
77406           && ( attachmentCount == rhs.attachmentCount )
77407           && ( pAttachments == rhs.pAttachments );
77408     }
77409 
operator !=VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77410     bool operator!=( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77411     {
77412       return !operator==( rhs );
77413     }
77414 #endif
77415 
77416 
77417 
77418   public:
77419     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo;
77420     const void* pNext = {};
77421     uint32_t attachmentCount = {};
77422     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
77423 
77424   };
77425   static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), "struct and wrapper have different size!" );
77426   static_assert( std::is_standard_layout<RenderPassAttachmentBeginInfo>::value, "struct wrapper is not a standard layout!" );
77427 
77428   template <>
77429   struct CppType<StructureType, StructureType::eRenderPassAttachmentBeginInfo>
77430   {
77431     using Type = RenderPassAttachmentBeginInfo;
77432   };
77433   using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
77434 
77435   struct RenderPassFragmentDensityMapCreateInfoEXT
77436   {
77437     static const bool allowDuplicate = false;
77438     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
77439 
77440 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77441     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT(VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {}) VULKAN_HPP_NOEXCEPT
77442     : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
77443     {}
77444 
77445     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77446 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77447     RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77448       : RenderPassFragmentDensityMapCreateInfoEXT( *reinterpret_cast<RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs ) )
77449     {}
77450 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77451 
77452     VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77453 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77454     RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77455     {
77456       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs );
77457       return *this;
77458     }
77459 
setPNextVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77460     RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77461     {
77462       pNext = pNext_;
77463       return *this;
77464     }
77465 
setFragmentDensityMapAttachmentVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77466     RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT
77467     {
77468       fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
77469       return *this;
77470     }
77471 
77472 
operator VkRenderPassFragmentDensityMapCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77473     operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77474     {
77475       return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
77476     }
77477 
operator VkRenderPassFragmentDensityMapCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77478     operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
77479     {
77480       return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
77481     }
77482 
77483 
77484 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77485     auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const& ) const = default;
77486 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77487     bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77488     {
77489       return ( sType == rhs.sType )
77490           && ( pNext == rhs.pNext )
77491           && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
77492     }
77493 
operator !=VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77494     bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77495     {
77496       return !operator==( rhs );
77497     }
77498 #endif
77499 
77500 
77501 
77502   public:
77503     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
77504     const void* pNext = {};
77505     VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {};
77506 
77507   };
77508   static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" );
77509   static_assert( std::is_standard_layout<RenderPassFragmentDensityMapCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
77510 
77511   template <>
77512   struct CppType<StructureType, StructureType::eRenderPassFragmentDensityMapCreateInfoEXT>
77513   {
77514     using Type = RenderPassFragmentDensityMapCreateInfoEXT;
77515   };
77516 
77517   struct RenderPassInputAttachmentAspectCreateInfo
77518   {
77519     static const bool allowDuplicate = false;
77520     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
77521 
77522 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77523     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo(uint32_t aspectReferenceCount_ = {}, const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ = {}) VULKAN_HPP_NOEXCEPT
77524     : aspectReferenceCount( aspectReferenceCount_ ), pAspectReferences( pAspectReferences_ )
77525     {}
77526 
77527     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77528 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77529     RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77530       : RenderPassInputAttachmentAspectCreateInfo( *reinterpret_cast<RenderPassInputAttachmentAspectCreateInfo const *>( &rhs ) )
77531     {}
77532 
77533 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77534     RenderPassInputAttachmentAspectCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ )
77535     : aspectReferenceCount( static_cast<uint32_t>( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() )
77536     {}
77537 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77538 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77539 
77540     VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77541 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77542     RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77543     {
77544       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const *>( &rhs );
77545       return *this;
77546     }
77547 
setPNextVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77548     RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77549     {
77550       pNext = pNext_;
77551       return *this;
77552     }
77553 
setAspectReferenceCountVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77554     RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT
77555     {
77556       aspectReferenceCount = aspectReferenceCount_;
77557       return *this;
77558     }
77559 
setPAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77560     RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
77561     {
77562       pAspectReferences = pAspectReferences_;
77563       return *this;
77564     }
77565 
77566 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77567     RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT
77568     {
77569       aspectReferenceCount = static_cast<uint32_t>( aspectReferences_.size() );
77570       pAspectReferences = aspectReferences_.data();
77571       return *this;
77572     }
77573 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77574 
77575 
operator VkRenderPassInputAttachmentAspectCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77576     operator VkRenderPassInputAttachmentAspectCreateInfo const&() const VULKAN_HPP_NOEXCEPT
77577     {
77578       return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>( this );
77579     }
77580 
operator VkRenderPassInputAttachmentAspectCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77581     operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
77582     {
77583       return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>( this );
77584     }
77585 
77586 
77587 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77588     auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const& ) const = default;
77589 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77590     bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77591     {
77592       return ( sType == rhs.sType )
77593           && ( pNext == rhs.pNext )
77594           && ( aspectReferenceCount == rhs.aspectReferenceCount )
77595           && ( pAspectReferences == rhs.pAspectReferences );
77596     }
77597 
operator !=VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77598     bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77599     {
77600       return !operator==( rhs );
77601     }
77602 #endif
77603 
77604 
77605 
77606   public:
77607     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
77608     const void* pNext = {};
77609     uint32_t aspectReferenceCount = {};
77610     const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences = {};
77611 
77612   };
77613   static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" );
77614   static_assert( std::is_standard_layout<RenderPassInputAttachmentAspectCreateInfo>::value, "struct wrapper is not a standard layout!" );
77615 
77616   template <>
77617   struct CppType<StructureType, StructureType::eRenderPassInputAttachmentAspectCreateInfo>
77618   {
77619     using Type = RenderPassInputAttachmentAspectCreateInfo;
77620   };
77621   using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
77622 
77623   struct RenderPassMultiviewCreateInfo
77624   {
77625     static const bool allowDuplicate = false;
77626     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo;
77627 
77628 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77629     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
77630     : subpassCount( subpassCount_ ), pViewMasks( pViewMasks_ ), dependencyCount( dependencyCount_ ), pViewOffsets( pViewOffsets_ ), correlationMaskCount( correlationMaskCount_ ), pCorrelationMasks( pCorrelationMasks_ )
77631     {}
77632 
77633     VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77634 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77635     RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77636       : RenderPassMultiviewCreateInfo( *reinterpret_cast<RenderPassMultiviewCreateInfo const *>( &rhs ) )
77637     {}
77638 
77639 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77640     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_ = {} )
77641     : 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() )
77642     {}
77643 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77644 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77645 
77646     VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77647 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77648     RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77649     {
77650       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const *>( &rhs );
77651       return *this;
77652     }
77653 
setPNextVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77654     RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77655     {
77656       pNext = pNext_;
77657       return *this;
77658     }
77659 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77660     RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
77661     {
77662       subpassCount = subpassCount_;
77663       return *this;
77664     }
77665 
setPViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77666     RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ ) VULKAN_HPP_NOEXCEPT
77667     {
77668       pViewMasks = pViewMasks_;
77669       return *this;
77670     }
77671 
77672 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77673     RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_ ) VULKAN_HPP_NOEXCEPT
77674     {
77675       subpassCount = static_cast<uint32_t>( viewMasks_.size() );
77676       pViewMasks = viewMasks_.data();
77677       return *this;
77678     }
77679 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77680 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77681     RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
77682     {
77683       dependencyCount = dependencyCount_;
77684       return *this;
77685     }
77686 
setPViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77687     RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ ) VULKAN_HPP_NOEXCEPT
77688     {
77689       pViewOffsets = pViewOffsets_;
77690       return *this;
77691     }
77692 
77693 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77694     RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT
77695     {
77696       dependencyCount = static_cast<uint32_t>( viewOffsets_.size() );
77697       pViewOffsets = viewOffsets_.data();
77698       return *this;
77699     }
77700 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77701 
setCorrelationMaskCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77702     RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
77703     {
77704       correlationMaskCount = correlationMaskCount_;
77705       return *this;
77706     }
77707 
setPCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77708     RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT
77709     {
77710       pCorrelationMasks = pCorrelationMasks_;
77711       return *this;
77712     }
77713 
77714 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77715     RenderPassMultiviewCreateInfo & setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT
77716     {
77717       correlationMaskCount = static_cast<uint32_t>( correlationMasks_.size() );
77718       pCorrelationMasks = correlationMasks_.data();
77719       return *this;
77720     }
77721 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77722 
77723 
operator VkRenderPassMultiviewCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77724     operator VkRenderPassMultiviewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
77725     {
77726       return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>( this );
77727     }
77728 
operator VkRenderPassMultiviewCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77729     operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
77730     {
77731       return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>( this );
77732     }
77733 
77734 
77735 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77736     auto operator<=>( RenderPassMultiviewCreateInfo const& ) const = default;
77737 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77738     bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77739     {
77740       return ( sType == rhs.sType )
77741           && ( pNext == rhs.pNext )
77742           && ( subpassCount == rhs.subpassCount )
77743           && ( pViewMasks == rhs.pViewMasks )
77744           && ( dependencyCount == rhs.dependencyCount )
77745           && ( pViewOffsets == rhs.pViewOffsets )
77746           && ( correlationMaskCount == rhs.correlationMaskCount )
77747           && ( pCorrelationMasks == rhs.pCorrelationMasks );
77748     }
77749 
operator !=VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77750     bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77751     {
77752       return !operator==( rhs );
77753     }
77754 #endif
77755 
77756 
77757 
77758   public:
77759     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
77760     const void* pNext = {};
77761     uint32_t subpassCount = {};
77762     const uint32_t* pViewMasks = {};
77763     uint32_t dependencyCount = {};
77764     const int32_t* pViewOffsets = {};
77765     uint32_t correlationMaskCount = {};
77766     const uint32_t* pCorrelationMasks = {};
77767 
77768   };
77769   static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" );
77770   static_assert( std::is_standard_layout<RenderPassMultiviewCreateInfo>::value, "struct wrapper is not a standard layout!" );
77771 
77772   template <>
77773   struct CppType<StructureType, StructureType::eRenderPassMultiviewCreateInfo>
77774   {
77775     using Type = RenderPassMultiviewCreateInfo;
77776   };
77777   using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
77778 
77779   struct SubpassSampleLocationsEXT
77780   {
77781 
77782 
77783 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77784     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT(uint32_t subpassIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
77785     : subpassIndex( subpassIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
77786     {}
77787 
77788     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77789 
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77790     SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77791       : SubpassSampleLocationsEXT( *reinterpret_cast<SubpassSampleLocationsEXT const *>( &rhs ) )
77792     {}
77793 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77794 
77795     VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77796 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77797     SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77798     {
77799       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const *>( &rhs );
77800       return *this;
77801     }
77802 
setSubpassIndexVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77803     SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
77804     {
77805       subpassIndex = subpassIndex_;
77806       return *this;
77807     }
77808 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77809     SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
77810     {
77811       sampleLocationsInfo = sampleLocationsInfo_;
77812       return *this;
77813     }
77814 
77815 
operator VkSubpassSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77816     operator VkSubpassSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
77817     {
77818       return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>( this );
77819     }
77820 
operator VkSubpassSampleLocationsEXT&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77821     operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
77822     {
77823       return *reinterpret_cast<VkSubpassSampleLocationsEXT*>( this );
77824     }
77825 
77826 
77827 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77828     auto operator<=>( SubpassSampleLocationsEXT const& ) const = default;
77829 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77830     bool operator==( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77831     {
77832       return ( subpassIndex == rhs.subpassIndex )
77833           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
77834     }
77835 
operator !=VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77836     bool operator!=( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77837     {
77838       return !operator==( rhs );
77839     }
77840 #endif
77841 
77842 
77843 
77844   public:
77845     uint32_t subpassIndex = {};
77846     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
77847 
77848   };
77849   static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" );
77850   static_assert( std::is_standard_layout<SubpassSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
77851 
77852   struct RenderPassSampleLocationsBeginInfoEXT
77853   {
77854     static const bool allowDuplicate = false;
77855     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
77856 
77857 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77858     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
77859     : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ), pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ), postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ), pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
77860     {}
77861 
77862     VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77863 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77864     RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77865       : RenderPassSampleLocationsBeginInfoEXT( *reinterpret_cast<RenderPassSampleLocationsBeginInfoEXT const *>( &rhs ) )
77866     {}
77867 
77868 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77869     RenderPassSampleLocationsBeginInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ = {} )
77870     : attachmentInitialSampleLocationsCount( static_cast<uint32_t>( attachmentInitialSampleLocations_.size() ) ), pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() ), postSubpassSampleLocationsCount( static_cast<uint32_t>( postSubpassSampleLocations_.size() ) ), pPostSubpassSampleLocations( postSubpassSampleLocations_.data() )
77871     {}
77872 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77873 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77874 
77875     VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77876 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77877     RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77878     {
77879       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const *>( &rhs );
77880       return *this;
77881     }
77882 
setPNextVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77883     RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77884     {
77885       pNext = pNext_;
77886       return *this;
77887     }
77888 
setAttachmentInitialSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77889     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
77890     {
77891       attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
77892       return *this;
77893     }
77894 
setPAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77895     RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77896     {
77897       pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
77898       return *this;
77899     }
77900 
77901 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77902     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77903     {
77904       attachmentInitialSampleLocationsCount = static_cast<uint32_t>( attachmentInitialSampleLocations_.size() );
77905       pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data();
77906       return *this;
77907     }
77908 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77909 
setPostSubpassSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77910     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
77911     {
77912       postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
77913       return *this;
77914     }
77915 
setPPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77916     RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77917     {
77918       pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
77919       return *this;
77920     }
77921 
77922 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77923     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77924     {
77925       postSubpassSampleLocationsCount = static_cast<uint32_t>( postSubpassSampleLocations_.size() );
77926       pPostSubpassSampleLocations = postSubpassSampleLocations_.data();
77927       return *this;
77928     }
77929 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77930 
77931 
operator VkRenderPassSampleLocationsBeginInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77932     operator VkRenderPassSampleLocationsBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77933     {
77934       return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>( this );
77935     }
77936 
operator VkRenderPassSampleLocationsBeginInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77937     operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
77938     {
77939       return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>( this );
77940     }
77941 
77942 
77943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77944     auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const& ) const = default;
77945 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77946     bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77947     {
77948       return ( sType == rhs.sType )
77949           && ( pNext == rhs.pNext )
77950           && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount )
77951           && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations )
77952           && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount )
77953           && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
77954     }
77955 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77956     bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77957     {
77958       return !operator==( rhs );
77959     }
77960 #endif
77961 
77962 
77963 
77964   public:
77965     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
77966     const void* pNext = {};
77967     uint32_t attachmentInitialSampleLocationsCount = {};
77968     const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations = {};
77969     uint32_t postSubpassSampleLocationsCount = {};
77970     const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations = {};
77971 
77972   };
77973   static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" );
77974   static_assert( std::is_standard_layout<RenderPassSampleLocationsBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
77975 
77976   template <>
77977   struct CppType<StructureType, StructureType::eRenderPassSampleLocationsBeginInfoEXT>
77978   {
77979     using Type = RenderPassSampleLocationsBeginInfoEXT;
77980   };
77981 
77982   struct RenderPassTransformBeginInfoQCOM
77983   {
77984     static const bool allowDuplicate = false;
77985     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM;
77986 
77987 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77988     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT
77989     : transform( transform_ )
77990     {}
77991 
77992     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77993 
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77994     RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
77995       : RenderPassTransformBeginInfoQCOM( *reinterpret_cast<RenderPassTransformBeginInfoQCOM const *>( &rhs ) )
77996     {}
77997 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77998 
77999     VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78000 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM78001     RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
78002     {
78003       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const *>( &rhs );
78004       return *this;
78005     }
78006 
setPNextVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM78007     RenderPassTransformBeginInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
78008     {
78009       pNext = pNext_;
78010       return *this;
78011     }
78012 
setTransformVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM78013     RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
78014     {
78015       transform = transform_;
78016       return *this;
78017     }
78018 
78019 
operator VkRenderPassTransformBeginInfoQCOM const&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM78020     operator VkRenderPassTransformBeginInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
78021     {
78022       return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>( this );
78023     }
78024 
operator VkRenderPassTransformBeginInfoQCOM&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM78025     operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
78026     {
78027       return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>( this );
78028     }
78029 
78030 
78031 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78032     auto operator<=>( RenderPassTransformBeginInfoQCOM const& ) const = default;
78033 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM78034     bool operator==( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
78035     {
78036       return ( sType == rhs.sType )
78037           && ( pNext == rhs.pNext )
78038           && ( transform == rhs.transform );
78039     }
78040 
operator !=VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM78041     bool operator!=( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
78042     {
78043       return !operator==( rhs );
78044     }
78045 #endif
78046 
78047 
78048 
78049   public:
78050     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM;
78051     void* pNext = {};
78052     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
78053 
78054   };
78055   static_assert( sizeof( RenderPassTransformBeginInfoQCOM ) == sizeof( VkRenderPassTransformBeginInfoQCOM ), "struct and wrapper have different size!" );
78056   static_assert( std::is_standard_layout<RenderPassTransformBeginInfoQCOM>::value, "struct wrapper is not a standard layout!" );
78057 
78058   template <>
78059   struct CppType<StructureType, StructureType::eRenderPassTransformBeginInfoQCOM>
78060   {
78061     using Type = RenderPassTransformBeginInfoQCOM;
78062   };
78063 
78064   struct SamplerCustomBorderColorCreateInfoEXT
78065   {
78066     static const bool allowDuplicate = false;
78067     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
78068 
78069 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT78070     SamplerCustomBorderColorCreateInfoEXT(VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT
78071     : customBorderColor( customBorderColor_ ), format( format_ )
78072     {}
78073 
78074     SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78075 
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT78076     SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78077       : SamplerCustomBorderColorCreateInfoEXT( *reinterpret_cast<SamplerCustomBorderColorCreateInfoEXT const *>( &rhs ) )
78078     {}
78079 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78080 
78081     SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78082 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT78083     SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78084     {
78085       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT const *>( &rhs );
78086       return *this;
78087     }
78088 
setPNextVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT78089     SamplerCustomBorderColorCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78090     {
78091       pNext = pNext_;
78092       return *this;
78093     }
78094 
setCustomBorderColorVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT78095     SamplerCustomBorderColorCreateInfoEXT & setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
78096     {
78097       customBorderColor = customBorderColor_;
78098       return *this;
78099     }
78100 
setFormatVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT78101     SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
78102     {
78103       format = format_;
78104       return *this;
78105     }
78106 
78107 
operator VkSamplerCustomBorderColorCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT78108     operator VkSamplerCustomBorderColorCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
78109     {
78110       return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>( this );
78111     }
78112 
operator VkSamplerCustomBorderColorCreateInfoEXT&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT78113     operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
78114     {
78115       return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>( this );
78116     }
78117 
78118 
78119 
78120 
78121   public:
78122     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
78123     const void* pNext = {};
78124     VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {};
78125     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
78126 
78127   };
78128   static_assert( sizeof( SamplerCustomBorderColorCreateInfoEXT ) == sizeof( VkSamplerCustomBorderColorCreateInfoEXT ), "struct and wrapper have different size!" );
78129   static_assert( std::is_standard_layout<SamplerCustomBorderColorCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
78130 
78131   template <>
78132   struct CppType<StructureType, StructureType::eSamplerCustomBorderColorCreateInfoEXT>
78133   {
78134     using Type = SamplerCustomBorderColorCreateInfoEXT;
78135   };
78136 
78137   struct SamplerReductionModeCreateInfo
78138   {
78139     static const bool allowDuplicate = false;
78140     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo;
78141 
78142 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78143     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo(VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage) VULKAN_HPP_NOEXCEPT
78144     : reductionMode( reductionMode_ )
78145     {}
78146 
78147     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78148 
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78149     SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78150       : SamplerReductionModeCreateInfo( *reinterpret_cast<SamplerReductionModeCreateInfo const *>( &rhs ) )
78151     {}
78152 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78153 
78154     VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78155 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78156     SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78157     {
78158       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const *>( &rhs );
78159       return *this;
78160     }
78161 
setPNextVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78162     SamplerReductionModeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78163     {
78164       pNext = pNext_;
78165       return *this;
78166     }
78167 
setReductionModeVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78168     SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT
78169     {
78170       reductionMode = reductionMode_;
78171       return *this;
78172     }
78173 
78174 
operator VkSamplerReductionModeCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78175     operator VkSamplerReductionModeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
78176     {
78177       return *reinterpret_cast<const VkSamplerReductionModeCreateInfo*>( this );
78178     }
78179 
operator VkSamplerReductionModeCreateInfo&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78180     operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
78181     {
78182       return *reinterpret_cast<VkSamplerReductionModeCreateInfo*>( this );
78183     }
78184 
78185 
78186 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78187     auto operator<=>( SamplerReductionModeCreateInfo const& ) const = default;
78188 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78189     bool operator==( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78190     {
78191       return ( sType == rhs.sType )
78192           && ( pNext == rhs.pNext )
78193           && ( reductionMode == rhs.reductionMode );
78194     }
78195 
operator !=VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo78196     bool operator!=( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78197     {
78198       return !operator==( rhs );
78199     }
78200 #endif
78201 
78202 
78203 
78204   public:
78205     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo;
78206     const void* pNext = {};
78207     VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage;
78208 
78209   };
78210   static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), "struct and wrapper have different size!" );
78211   static_assert( std::is_standard_layout<SamplerReductionModeCreateInfo>::value, "struct wrapper is not a standard layout!" );
78212 
78213   template <>
78214   struct CppType<StructureType, StructureType::eSamplerReductionModeCreateInfo>
78215   {
78216     using Type = SamplerReductionModeCreateInfo;
78217   };
78218   using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
78219 
78220   struct SamplerYcbcrConversionImageFormatProperties
78221   {
78222     static const bool allowDuplicate = false;
78223     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
78224 
78225 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties78226     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties(uint32_t combinedImageSamplerDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
78227     : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
78228     {}
78229 
78230     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78231 
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties78232     SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
78233       : SamplerYcbcrConversionImageFormatProperties( *reinterpret_cast<SamplerYcbcrConversionImageFormatProperties const *>( &rhs ) )
78234     {}
78235 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78236 
78237     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78238 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties78239     SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
78240     {
78241       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const *>( &rhs );
78242       return *this;
78243     }
78244 
78245 
operator VkSamplerYcbcrConversionImageFormatProperties const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties78246     operator VkSamplerYcbcrConversionImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
78247     {
78248       return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>( this );
78249     }
78250 
operator VkSamplerYcbcrConversionImageFormatProperties&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties78251     operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
78252     {
78253       return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>( this );
78254     }
78255 
78256 
78257 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78258     auto operator<=>( SamplerYcbcrConversionImageFormatProperties const& ) const = default;
78259 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties78260     bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
78261     {
78262       return ( sType == rhs.sType )
78263           && ( pNext == rhs.pNext )
78264           && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
78265     }
78266 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties78267     bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
78268     {
78269       return !operator==( rhs );
78270     }
78271 #endif
78272 
78273 
78274 
78275   public:
78276     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
78277     void* pNext = {};
78278     uint32_t combinedImageSamplerDescriptorCount = {};
78279 
78280   };
78281   static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" );
78282   static_assert( std::is_standard_layout<SamplerYcbcrConversionImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
78283 
78284   template <>
78285   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionImageFormatProperties>
78286   {
78287     using Type = SamplerYcbcrConversionImageFormatProperties;
78288   };
78289   using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
78290 
78291   struct SamplerYcbcrConversionInfo
78292   {
78293     static const bool allowDuplicate = false;
78294     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo;
78295 
78296 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78297     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {}) VULKAN_HPP_NOEXCEPT
78298     : conversion( conversion_ )
78299     {}
78300 
78301     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78302 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78303     SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78304       : SamplerYcbcrConversionInfo( *reinterpret_cast<SamplerYcbcrConversionInfo const *>( &rhs ) )
78305     {}
78306 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78307 
78308     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78309 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78310     SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78311     {
78312       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const *>( &rhs );
78313       return *this;
78314     }
78315 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78316     SamplerYcbcrConversionInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78317     {
78318       pNext = pNext_;
78319       return *this;
78320     }
78321 
setConversionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78322     SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT
78323     {
78324       conversion = conversion_;
78325       return *this;
78326     }
78327 
78328 
operator VkSamplerYcbcrConversionInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78329     operator VkSamplerYcbcrConversionInfo const&() const VULKAN_HPP_NOEXCEPT
78330     {
78331       return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>( this );
78332     }
78333 
operator VkSamplerYcbcrConversionInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78334     operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
78335     {
78336       return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>( this );
78337     }
78338 
78339 
78340 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78341     auto operator<=>( SamplerYcbcrConversionInfo const& ) const = default;
78342 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78343     bool operator==( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78344     {
78345       return ( sType == rhs.sType )
78346           && ( pNext == rhs.pNext )
78347           && ( conversion == rhs.conversion );
78348     }
78349 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78350     bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78351     {
78352       return !operator==( rhs );
78353     }
78354 #endif
78355 
78356 
78357 
78358   public:
78359     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
78360     const void* pNext = {};
78361     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {};
78362 
78363   };
78364   static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" );
78365   static_assert( std::is_standard_layout<SamplerYcbcrConversionInfo>::value, "struct wrapper is not a standard layout!" );
78366 
78367   template <>
78368   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionInfo>
78369   {
78370     using Type = SamplerYcbcrConversionInfo;
78371   };
78372   using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
78373 
78374 #ifdef VK_USE_PLATFORM_SCREEN_QNX
78375   struct ScreenSurfaceCreateInfoQNX
78376   {
78377     static const bool allowDuplicate = false;
78378     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenSurfaceCreateInfoQNX;
78379 
78380 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ScreenSurfaceCreateInfoQNXVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78381     VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX(VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ = {}, struct _screen_context* context_ = {}, struct _screen_window* window_ = {}) VULKAN_HPP_NOEXCEPT
78382     : flags( flags_ ), context( context_ ), window( window_ )
78383     {}
78384 
78385     VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78386 
ScreenSurfaceCreateInfoQNXVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78387     ScreenSurfaceCreateInfoQNX( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
78388       : ScreenSurfaceCreateInfoQNX( *reinterpret_cast<ScreenSurfaceCreateInfoQNX const *>( &rhs ) )
78389     {}
78390 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78391 
78392     VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & operator=( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78393 
operator =VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78394     ScreenSurfaceCreateInfoQNX & operator=( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
78395     {
78396       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const *>( &rhs );
78397       return *this;
78398     }
78399 
setPNextVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78400     ScreenSurfaceCreateInfoQNX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78401     {
78402       pNext = pNext_;
78403       return *this;
78404     }
78405 
setFlagsVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78406     ScreenSurfaceCreateInfoQNX & setFlags( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ ) VULKAN_HPP_NOEXCEPT
78407     {
78408       flags = flags_;
78409       return *this;
78410     }
78411 
setContextVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78412     ScreenSurfaceCreateInfoQNX & setContext( struct _screen_context* context_ ) VULKAN_HPP_NOEXCEPT
78413     {
78414       context = context_;
78415       return *this;
78416     }
78417 
setWindowVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78418     ScreenSurfaceCreateInfoQNX & setWindow( struct _screen_window* window_ ) VULKAN_HPP_NOEXCEPT
78419     {
78420       window = window_;
78421       return *this;
78422     }
78423 
78424 
operator VkScreenSurfaceCreateInfoQNX const&VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78425     operator VkScreenSurfaceCreateInfoQNX const&() const VULKAN_HPP_NOEXCEPT
78426     {
78427       return *reinterpret_cast<const VkScreenSurfaceCreateInfoQNX*>( this );
78428     }
78429 
operator VkScreenSurfaceCreateInfoQNX&VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78430     operator VkScreenSurfaceCreateInfoQNX &() VULKAN_HPP_NOEXCEPT
78431     {
78432       return *reinterpret_cast<VkScreenSurfaceCreateInfoQNX*>( this );
78433     }
78434 
78435 
78436 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78437     auto operator<=>( ScreenSurfaceCreateInfoQNX const& ) const = default;
78438 #else
operator ==VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78439     bool operator==( ScreenSurfaceCreateInfoQNX const& rhs ) const VULKAN_HPP_NOEXCEPT
78440     {
78441       return ( sType == rhs.sType )
78442           && ( pNext == rhs.pNext )
78443           && ( flags == rhs.flags )
78444           && ( context == rhs.context )
78445           && ( window == rhs.window );
78446     }
78447 
operator !=VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX78448     bool operator!=( ScreenSurfaceCreateInfoQNX const& rhs ) const VULKAN_HPP_NOEXCEPT
78449     {
78450       return !operator==( rhs );
78451     }
78452 #endif
78453 
78454 
78455 
78456   public:
78457     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenSurfaceCreateInfoQNX;
78458     const void* pNext = {};
78459     VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags = {};
78460     struct _screen_context* context = {};
78461     struct _screen_window* window = {};
78462 
78463   };
78464   static_assert( sizeof( ScreenSurfaceCreateInfoQNX ) == sizeof( VkScreenSurfaceCreateInfoQNX ), "struct and wrapper have different size!" );
78465   static_assert( std::is_standard_layout<ScreenSurfaceCreateInfoQNX>::value, "struct wrapper is not a standard layout!" );
78466 
78467   template <>
78468   struct CppType<StructureType, StructureType::eScreenSurfaceCreateInfoQNX>
78469   {
78470     using Type = ScreenSurfaceCreateInfoQNX;
78471   };
78472 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
78473 
78474   struct SemaphoreTypeCreateInfo
78475   {
78476     static const bool allowDuplicate = false;
78477     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo;
78478 
78479 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78480     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, uint64_t initialValue_ = {}) VULKAN_HPP_NOEXCEPT
78481     : semaphoreType( semaphoreType_ ), initialValue( initialValue_ )
78482     {}
78483 
78484     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78485 
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78486     SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78487       : SemaphoreTypeCreateInfo( *reinterpret_cast<SemaphoreTypeCreateInfo const *>( &rhs ) )
78488     {}
78489 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78490 
78491     VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78492 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78493     SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78494     {
78495       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const *>( &rhs );
78496       return *this;
78497     }
78498 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78499     SemaphoreTypeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78500     {
78501       pNext = pNext_;
78502       return *this;
78503     }
78504 
setSemaphoreTypeVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78505     SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT
78506     {
78507       semaphoreType = semaphoreType_;
78508       return *this;
78509     }
78510 
setInitialValueVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78511     SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT
78512     {
78513       initialValue = initialValue_;
78514       return *this;
78515     }
78516 
78517 
operator VkSemaphoreTypeCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78518     operator VkSemaphoreTypeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
78519     {
78520       return *reinterpret_cast<const VkSemaphoreTypeCreateInfo*>( this );
78521     }
78522 
operator VkSemaphoreTypeCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78523     operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
78524     {
78525       return *reinterpret_cast<VkSemaphoreTypeCreateInfo*>( this );
78526     }
78527 
78528 
78529 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78530     auto operator<=>( SemaphoreTypeCreateInfo const& ) const = default;
78531 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78532     bool operator==( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78533     {
78534       return ( sType == rhs.sType )
78535           && ( pNext == rhs.pNext )
78536           && ( semaphoreType == rhs.semaphoreType )
78537           && ( initialValue == rhs.initialValue );
78538     }
78539 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78540     bool operator!=( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78541     {
78542       return !operator==( rhs );
78543     }
78544 #endif
78545 
78546 
78547 
78548   public:
78549     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo;
78550     const void* pNext = {};
78551     VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary;
78552     uint64_t initialValue = {};
78553 
78554   };
78555   static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), "struct and wrapper have different size!" );
78556   static_assert( std::is_standard_layout<SemaphoreTypeCreateInfo>::value, "struct wrapper is not a standard layout!" );
78557 
78558   template <>
78559   struct CppType<StructureType, StructureType::eSemaphoreTypeCreateInfo>
78560   {
78561     using Type = SemaphoreTypeCreateInfo;
78562   };
78563   using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
78564 
78565   struct SetStateFlagsIndirectCommandNV
78566   {
78567 
78568 
78569 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78570     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV(uint32_t data_ = {}) VULKAN_HPP_NOEXCEPT
78571     : data( data_ )
78572     {}
78573 
78574     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78575 
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78576     SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
78577       : SetStateFlagsIndirectCommandNV( *reinterpret_cast<SetStateFlagsIndirectCommandNV const *>( &rhs ) )
78578     {}
78579 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78580 
78581     VULKAN_HPP_CONSTEXPR_14 SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78582 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78583     SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
78584     {
78585       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const *>( &rhs );
78586       return *this;
78587     }
78588 
setDataVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78589     SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
78590     {
78591       data = data_;
78592       return *this;
78593     }
78594 
78595 
operator VkSetStateFlagsIndirectCommandNV const&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78596     operator VkSetStateFlagsIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
78597     {
78598       return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV*>( this );
78599     }
78600 
operator VkSetStateFlagsIndirectCommandNV&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78601     operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
78602     {
78603       return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV*>( this );
78604     }
78605 
78606 
78607 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78608     auto operator<=>( SetStateFlagsIndirectCommandNV const& ) const = default;
78609 #else
operator ==VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78610     bool operator==( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
78611     {
78612       return ( data == rhs.data );
78613     }
78614 
operator !=VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78615     bool operator!=( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
78616     {
78617       return !operator==( rhs );
78618     }
78619 #endif
78620 
78621 
78622 
78623   public:
78624     uint32_t data = {};
78625 
78626   };
78627   static_assert( sizeof( SetStateFlagsIndirectCommandNV ) == sizeof( VkSetStateFlagsIndirectCommandNV ), "struct and wrapper have different size!" );
78628   static_assert( std::is_standard_layout<SetStateFlagsIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
78629 
78630   struct ShaderModuleValidationCacheCreateInfoEXT
78631   {
78632     static const bool allowDuplicate = false;
78633     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
78634 
78635 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78636     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {}) VULKAN_HPP_NOEXCEPT
78637     : validationCache( validationCache_ )
78638     {}
78639 
78640     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78641 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78642     ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78643       : ShaderModuleValidationCacheCreateInfoEXT( *reinterpret_cast<ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs ) )
78644     {}
78645 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78646 
78647     VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78648 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78649     ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78650     {
78651       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs );
78652       return *this;
78653     }
78654 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78655     ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78656     {
78657       pNext = pNext_;
78658       return *this;
78659     }
78660 
setValidationCacheVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78661     ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
78662     {
78663       validationCache = validationCache_;
78664       return *this;
78665     }
78666 
78667 
operator VkShaderModuleValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78668     operator VkShaderModuleValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
78669     {
78670       return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>( this );
78671     }
78672 
operator VkShaderModuleValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78673     operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
78674     {
78675       return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>( this );
78676     }
78677 
78678 
78679 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78680     auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const& ) const = default;
78681 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78682     bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78683     {
78684       return ( sType == rhs.sType )
78685           && ( pNext == rhs.pNext )
78686           && ( validationCache == rhs.validationCache );
78687     }
78688 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78689     bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78690     {
78691       return !operator==( rhs );
78692     }
78693 #endif
78694 
78695 
78696 
78697   public:
78698     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
78699     const void* pNext = {};
78700     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {};
78701 
78702   };
78703   static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
78704   static_assert( std::is_standard_layout<ShaderModuleValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
78705 
78706   template <>
78707   struct CppType<StructureType, StructureType::eShaderModuleValidationCacheCreateInfoEXT>
78708   {
78709     using Type = ShaderModuleValidationCacheCreateInfoEXT;
78710   };
78711 
78712   struct ShaderResourceUsageAMD
78713   {
78714 
78715 
78716 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78717     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD(uint32_t numUsedVgprs_ = {}, uint32_t numUsedSgprs_ = {}, uint32_t ldsSizePerLocalWorkGroup_ = {}, size_t ldsUsageSizeInBytes_ = {}, size_t scratchMemUsageInBytes_ = {}) VULKAN_HPP_NOEXCEPT
78718     : numUsedVgprs( numUsedVgprs_ ), numUsedSgprs( numUsedSgprs_ ), ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ), ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ), scratchMemUsageInBytes( scratchMemUsageInBytes_ )
78719     {}
78720 
78721     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78722 
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78723     ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78724       : ShaderResourceUsageAMD( *reinterpret_cast<ShaderResourceUsageAMD const *>( &rhs ) )
78725     {}
78726 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78727 
78728     VULKAN_HPP_CONSTEXPR_14 ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78729 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78730     ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78731     {
78732       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const *>( &rhs );
78733       return *this;
78734     }
78735 
78736 
operator VkShaderResourceUsageAMD const&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78737     operator VkShaderResourceUsageAMD const&() const VULKAN_HPP_NOEXCEPT
78738     {
78739       return *reinterpret_cast<const VkShaderResourceUsageAMD*>( this );
78740     }
78741 
operator VkShaderResourceUsageAMD&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78742     operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
78743     {
78744       return *reinterpret_cast<VkShaderResourceUsageAMD*>( this );
78745     }
78746 
78747 
78748 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78749     auto operator<=>( ShaderResourceUsageAMD const& ) const = default;
78750 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78751     bool operator==( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78752     {
78753       return ( numUsedVgprs == rhs.numUsedVgprs )
78754           && ( numUsedSgprs == rhs.numUsedSgprs )
78755           && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup )
78756           && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes )
78757           && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
78758     }
78759 
operator !=VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78760     bool operator!=( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78761     {
78762       return !operator==( rhs );
78763     }
78764 #endif
78765 
78766 
78767 
78768   public:
78769     uint32_t numUsedVgprs = {};
78770     uint32_t numUsedSgprs = {};
78771     uint32_t ldsSizePerLocalWorkGroup = {};
78772     size_t ldsUsageSizeInBytes = {};
78773     size_t scratchMemUsageInBytes = {};
78774 
78775   };
78776   static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" );
78777   static_assert( std::is_standard_layout<ShaderResourceUsageAMD>::value, "struct wrapper is not a standard layout!" );
78778 
78779   struct ShaderStatisticsInfoAMD
78780   {
78781 
78782 
78783 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78784     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
78785     : shaderStageMask( shaderStageMask_ ), resourceUsage( resourceUsage_ ), numPhysicalVgprs( numPhysicalVgprs_ ), numPhysicalSgprs( numPhysicalSgprs_ ), numAvailableVgprs( numAvailableVgprs_ ), numAvailableSgprs( numAvailableSgprs_ ), computeWorkGroupSize( computeWorkGroupSize_ )
78786     {}
78787 
78788     VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78789 
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78790     ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78791       : ShaderStatisticsInfoAMD( *reinterpret_cast<ShaderStatisticsInfoAMD const *>( &rhs ) )
78792     {}
78793 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78794 
78795     VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78796 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78797     ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78798     {
78799       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const *>( &rhs );
78800       return *this;
78801     }
78802 
78803 
operator VkShaderStatisticsInfoAMD const&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78804     operator VkShaderStatisticsInfoAMD const&() const VULKAN_HPP_NOEXCEPT
78805     {
78806       return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>( this );
78807     }
78808 
operator VkShaderStatisticsInfoAMD&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78809     operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
78810     {
78811       return *reinterpret_cast<VkShaderStatisticsInfoAMD*>( this );
78812     }
78813 
78814 
78815 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78816     auto operator<=>( ShaderStatisticsInfoAMD const& ) const = default;
78817 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78818     bool operator==( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78819     {
78820       return ( shaderStageMask == rhs.shaderStageMask )
78821           && ( resourceUsage == rhs.resourceUsage )
78822           && ( numPhysicalVgprs == rhs.numPhysicalVgprs )
78823           && ( numPhysicalSgprs == rhs.numPhysicalSgprs )
78824           && ( numAvailableVgprs == rhs.numAvailableVgprs )
78825           && ( numAvailableSgprs == rhs.numAvailableSgprs )
78826           && ( computeWorkGroupSize == rhs.computeWorkGroupSize );
78827     }
78828 
operator !=VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78829     bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78830     {
78831       return !operator==( rhs );
78832     }
78833 #endif
78834 
78835 
78836 
78837   public:
78838     VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {};
78839     VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {};
78840     uint32_t numPhysicalVgprs = {};
78841     uint32_t numPhysicalSgprs = {};
78842     uint32_t numAvailableVgprs = {};
78843     uint32_t numAvailableSgprs = {};
78844     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> computeWorkGroupSize = {};
78845 
78846   };
78847   static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" );
78848   static_assert( std::is_standard_layout<ShaderStatisticsInfoAMD>::value, "struct wrapper is not a standard layout!" );
78849 
78850   struct SharedPresentSurfaceCapabilitiesKHR
78851   {
78852     static const bool allowDuplicate = false;
78853     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
78854 
78855 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78856     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT
78857     : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
78858     {}
78859 
78860     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78861 
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78862     SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78863       : SharedPresentSurfaceCapabilitiesKHR( *reinterpret_cast<SharedPresentSurfaceCapabilitiesKHR const *>( &rhs ) )
78864     {}
78865 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78866 
78867     VULKAN_HPP_CONSTEXPR_14 SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78868 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78869     SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78870     {
78871       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const *>( &rhs );
78872       return *this;
78873     }
78874 
78875 
operator VkSharedPresentSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78876     operator VkSharedPresentSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
78877     {
78878       return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>( this );
78879     }
78880 
operator VkSharedPresentSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78881     operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
78882     {
78883       return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>( this );
78884     }
78885 
78886 
78887 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78888     auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const& ) const = default;
78889 #else
operator ==VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78890     bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78891     {
78892       return ( sType == rhs.sType )
78893           && ( pNext == rhs.pNext )
78894           && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
78895     }
78896 
operator !=VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78897     bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78898     {
78899       return !operator==( rhs );
78900     }
78901 #endif
78902 
78903 
78904 
78905   public:
78906     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
78907     void* pNext = {};
78908     VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {};
78909 
78910   };
78911   static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
78912   static_assert( std::is_standard_layout<SharedPresentSurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
78913 
78914   template <>
78915   struct CppType<StructureType, StructureType::eSharedPresentSurfaceCapabilitiesKHR>
78916   {
78917     using Type = SharedPresentSurfaceCapabilitiesKHR;
78918   };
78919 
78920 #ifdef VK_USE_PLATFORM_GGP
78921   struct StreamDescriptorSurfaceCreateInfoGGP
78922   {
78923     static const bool allowDuplicate = false;
78924     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
78925 
78926 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78927     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, GgpStreamDescriptor streamDescriptor_ = {}) VULKAN_HPP_NOEXCEPT
78928     : flags( flags_ ), streamDescriptor( streamDescriptor_ )
78929     {}
78930 
78931     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78932 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78933     StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
78934       : StreamDescriptorSurfaceCreateInfoGGP( *reinterpret_cast<StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs ) )
78935     {}
78936 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78937 
78938     VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78939 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78940     StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
78941     {
78942       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs );
78943       return *this;
78944     }
78945 
setPNextVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78946     StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78947     {
78948       pNext = pNext_;
78949       return *this;
78950     }
78951 
setFlagsVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78952     StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
78953     {
78954       flags = flags_;
78955       return *this;
78956     }
78957 
setStreamDescriptorVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78958     StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT
78959     {
78960       streamDescriptor = streamDescriptor_;
78961       return *this;
78962     }
78963 
78964 
operator VkStreamDescriptorSurfaceCreateInfoGGP const&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78965     operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const VULKAN_HPP_NOEXCEPT
78966     {
78967       return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
78968     }
78969 
operator VkStreamDescriptorSurfaceCreateInfoGGP&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78970     operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
78971     {
78972       return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
78973     }
78974 
78975 
78976 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78977     auto operator<=>( StreamDescriptorSurfaceCreateInfoGGP const& ) const = default;
78978 #else
operator ==VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78979     bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
78980     {
78981       return ( sType == rhs.sType )
78982           && ( pNext == rhs.pNext )
78983           && ( flags == rhs.flags )
78984           && ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 );
78985     }
78986 
operator !=VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78987     bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
78988     {
78989       return !operator==( rhs );
78990     }
78991 #endif
78992 
78993 
78994 
78995   public:
78996     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
78997     const void* pNext = {};
78998     VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {};
78999     GgpStreamDescriptor streamDescriptor = {};
79000 
79001   };
79002   static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" );
79003   static_assert( std::is_standard_layout<StreamDescriptorSurfaceCreateInfoGGP>::value, "struct wrapper is not a standard layout!" );
79004 
79005   template <>
79006   struct CppType<StructureType, StructureType::eStreamDescriptorSurfaceCreateInfoGGP>
79007   {
79008     using Type = StreamDescriptorSurfaceCreateInfoGGP;
79009   };
79010 #endif /*VK_USE_PLATFORM_GGP*/
79011 
79012   struct SubpassDescriptionDepthStencilResolve
79013   {
79014     static const bool allowDuplicate = false;
79015     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve;
79016 
79017 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79018     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
79019     : depthResolveMode( depthResolveMode_ ), stencilResolveMode( stencilResolveMode_ ), pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
79020     {}
79021 
79022     VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79023 
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79024     SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
79025       : SubpassDescriptionDepthStencilResolve( *reinterpret_cast<SubpassDescriptionDepthStencilResolve const *>( &rhs ) )
79026     {}
79027 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79028 
79029     VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79030 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79031     SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
79032     {
79033       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const *>( &rhs );
79034       return *this;
79035     }
79036 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79037     SubpassDescriptionDepthStencilResolve & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79038     {
79039       pNext = pNext_;
79040       return *this;
79041     }
79042 
setDepthResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79043     SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
79044     {
79045       depthResolveMode = depthResolveMode_;
79046       return *this;
79047     }
79048 
setStencilResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79049     SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
79050     {
79051       stencilResolveMode = stencilResolveMode_;
79052       return *this;
79053     }
79054 
setPDepthStencilResolveAttachmentVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79055     SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT
79056     {
79057       pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
79058       return *this;
79059     }
79060 
79061 
operator VkSubpassDescriptionDepthStencilResolve const&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79062     operator VkSubpassDescriptionDepthStencilResolve const&() const VULKAN_HPP_NOEXCEPT
79063     {
79064       return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>( this );
79065     }
79066 
operator VkSubpassDescriptionDepthStencilResolve&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79067     operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
79068     {
79069       return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>( this );
79070     }
79071 
79072 
79073 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79074     auto operator<=>( SubpassDescriptionDepthStencilResolve const& ) const = default;
79075 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79076     bool operator==( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
79077     {
79078       return ( sType == rhs.sType )
79079           && ( pNext == rhs.pNext )
79080           && ( depthResolveMode == rhs.depthResolveMode )
79081           && ( stencilResolveMode == rhs.stencilResolveMode )
79082           && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
79083     }
79084 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve79085     bool operator!=( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
79086     {
79087       return !operator==( rhs );
79088     }
79089 #endif
79090 
79091 
79092 
79093   public:
79094     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve;
79095     const void* pNext = {};
79096     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
79097     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
79098     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment = {};
79099 
79100   };
79101   static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), "struct and wrapper have different size!" );
79102   static_assert( std::is_standard_layout<SubpassDescriptionDepthStencilResolve>::value, "struct wrapper is not a standard layout!" );
79103 
79104   template <>
79105   struct CppType<StructureType, StructureType::eSubpassDescriptionDepthStencilResolve>
79106   {
79107     using Type = SubpassDescriptionDepthStencilResolve;
79108   };
79109   using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
79110 
79111 #ifdef VK_USE_PLATFORM_WIN32_KHR
79112   struct SurfaceCapabilitiesFullScreenExclusiveEXT
79113   {
79114     static const bool allowDuplicate = false;
79115     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
79116 
79117 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79118     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT(VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {}) VULKAN_HPP_NOEXCEPT
79119     : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
79120     {}
79121 
79122     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79123 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79124     SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79125       : SurfaceCapabilitiesFullScreenExclusiveEXT( *reinterpret_cast<SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs ) )
79126     {}
79127 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79128 
79129     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79130 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79131     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79132     {
79133       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs );
79134       return *this;
79135     }
79136 
setPNextVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79137     SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
79138     {
79139       pNext = pNext_;
79140       return *this;
79141     }
79142 
setFullScreenExclusiveSupportedVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79143     SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
79144     {
79145       fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
79146       return *this;
79147     }
79148 
79149 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79150     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const VULKAN_HPP_NOEXCEPT
79151     {
79152       return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
79153     }
79154 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79155     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
79156     {
79157       return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
79158     }
79159 
79160 
79161 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79162     auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const& ) const = default;
79163 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79164     bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79165     {
79166       return ( sType == rhs.sType )
79167           && ( pNext == rhs.pNext )
79168           && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
79169     }
79170 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT79171     bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79172     {
79173       return !operator==( rhs );
79174     }
79175 #endif
79176 
79177 
79178 
79179   public:
79180     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
79181     void* pNext = {};
79182     VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {};
79183 
79184   };
79185   static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" );
79186   static_assert( std::is_standard_layout<SurfaceCapabilitiesFullScreenExclusiveEXT>::value, "struct wrapper is not a standard layout!" );
79187 
79188   template <>
79189   struct CppType<StructureType, StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT>
79190   {
79191     using Type = SurfaceCapabilitiesFullScreenExclusiveEXT;
79192   };
79193 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79194 
79195 #ifdef VK_USE_PLATFORM_WIN32_KHR
79196   struct SurfaceFullScreenExclusiveInfoEXT
79197   {
79198     static const bool allowDuplicate = false;
79199     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
79200 
79201 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79202     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault) VULKAN_HPP_NOEXCEPT
79203     : fullScreenExclusive( fullScreenExclusive_ )
79204     {}
79205 
79206     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79207 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79208     SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79209       : SurfaceFullScreenExclusiveInfoEXT( *reinterpret_cast<SurfaceFullScreenExclusiveInfoEXT const *>( &rhs ) )
79210     {}
79211 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79212 
79213     VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79214 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79215     SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79216     {
79217       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const *>( &rhs );
79218       return *this;
79219     }
79220 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79221     SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
79222     {
79223       pNext = pNext_;
79224       return *this;
79225     }
79226 
setFullScreenExclusiveVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79227     SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
79228     {
79229       fullScreenExclusive = fullScreenExclusive_;
79230       return *this;
79231     }
79232 
79233 
operator VkSurfaceFullScreenExclusiveInfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79234     operator VkSurfaceFullScreenExclusiveInfoEXT const&() const VULKAN_HPP_NOEXCEPT
79235     {
79236       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>( this );
79237     }
79238 
operator VkSurfaceFullScreenExclusiveInfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79239     operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
79240     {
79241       return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>( this );
79242     }
79243 
79244 
79245 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79246     auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const& ) const = default;
79247 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79248     bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79249     {
79250       return ( sType == rhs.sType )
79251           && ( pNext == rhs.pNext )
79252           && ( fullScreenExclusive == rhs.fullScreenExclusive );
79253     }
79254 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT79255     bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79256     {
79257       return !operator==( rhs );
79258     }
79259 #endif
79260 
79261 
79262 
79263   public:
79264     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
79265     void* pNext = {};
79266     VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault;
79267 
79268   };
79269   static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" );
79270   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveInfoEXT>::value, "struct wrapper is not a standard layout!" );
79271 
79272   template <>
79273   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveInfoEXT>
79274   {
79275     using Type = SurfaceFullScreenExclusiveInfoEXT;
79276   };
79277 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79278 
79279 #ifdef VK_USE_PLATFORM_WIN32_KHR
79280   struct SurfaceFullScreenExclusiveWin32InfoEXT
79281   {
79282     static const bool allowDuplicate = false;
79283     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
79284 
79285 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79286     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT(HMONITOR hmonitor_ = {}) VULKAN_HPP_NOEXCEPT
79287     : hmonitor( hmonitor_ )
79288     {}
79289 
79290     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79291 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79292     SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79293       : SurfaceFullScreenExclusiveWin32InfoEXT( *reinterpret_cast<SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs ) )
79294     {}
79295 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79296 
79297     VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79298 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79299     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79300     {
79301       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs );
79302       return *this;
79303     }
79304 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79305     SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79306     {
79307       pNext = pNext_;
79308       return *this;
79309     }
79310 
setHmonitorVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79311     SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT
79312     {
79313       hmonitor = hmonitor_;
79314       return *this;
79315     }
79316 
79317 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79318     operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const VULKAN_HPP_NOEXCEPT
79319     {
79320       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
79321     }
79322 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79323     operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
79324     {
79325       return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
79326     }
79327 
79328 
79329 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79330     auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const& ) const = default;
79331 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79332     bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79333     {
79334       return ( sType == rhs.sType )
79335           && ( pNext == rhs.pNext )
79336           && ( hmonitor == rhs.hmonitor );
79337     }
79338 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79339     bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79340     {
79341       return !operator==( rhs );
79342     }
79343 #endif
79344 
79345 
79346 
79347   public:
79348     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
79349     const void* pNext = {};
79350     HMONITOR hmonitor = {};
79351 
79352   };
79353   static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" );
79354   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveWin32InfoEXT>::value, "struct wrapper is not a standard layout!" );
79355 
79356   template <>
79357   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT>
79358   {
79359     using Type = SurfaceFullScreenExclusiveWin32InfoEXT;
79360   };
79361 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79362 
79363   struct SurfaceProtectedCapabilitiesKHR
79364   {
79365     static const bool allowDuplicate = false;
79366     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR;
79367 
79368 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79369     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR(VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {}) VULKAN_HPP_NOEXCEPT
79370     : supportsProtected( supportsProtected_ )
79371     {}
79372 
79373     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79374 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79375     SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79376       : SurfaceProtectedCapabilitiesKHR( *reinterpret_cast<SurfaceProtectedCapabilitiesKHR const *>( &rhs ) )
79377     {}
79378 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79379 
79380     VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79381 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79382     SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79383     {
79384       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const *>( &rhs );
79385       return *this;
79386     }
79387 
setPNextVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79388     SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79389     {
79390       pNext = pNext_;
79391       return *this;
79392     }
79393 
setSupportsProtectedVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79394     SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT
79395     {
79396       supportsProtected = supportsProtected_;
79397       return *this;
79398     }
79399 
79400 
operator VkSurfaceProtectedCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79401     operator VkSurfaceProtectedCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
79402     {
79403       return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>( this );
79404     }
79405 
operator VkSurfaceProtectedCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79406     operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
79407     {
79408       return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>( this );
79409     }
79410 
79411 
79412 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79413     auto operator<=>( SurfaceProtectedCapabilitiesKHR const& ) const = default;
79414 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79415     bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79416     {
79417       return ( sType == rhs.sType )
79418           && ( pNext == rhs.pNext )
79419           && ( supportsProtected == rhs.supportsProtected );
79420     }
79421 
operator !=VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79422     bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79423     {
79424       return !operator==( rhs );
79425     }
79426 #endif
79427 
79428 
79429 
79430   public:
79431     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
79432     const void* pNext = {};
79433     VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {};
79434 
79435   };
79436   static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" );
79437   static_assert( std::is_standard_layout<SurfaceProtectedCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
79438 
79439   template <>
79440   struct CppType<StructureType, StructureType::eSurfaceProtectedCapabilitiesKHR>
79441   {
79442     using Type = SurfaceProtectedCapabilitiesKHR;
79443   };
79444 
79445   struct SwapchainCounterCreateInfoEXT
79446   {
79447     static const bool allowDuplicate = false;
79448     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT;
79449 
79450 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79451     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT
79452     : surfaceCounters( surfaceCounters_ )
79453     {}
79454 
79455     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79456 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79457     SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79458       : SwapchainCounterCreateInfoEXT( *reinterpret_cast<SwapchainCounterCreateInfoEXT const *>( &rhs ) )
79459     {}
79460 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79461 
79462     VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79463 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79464     SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79465     {
79466       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const *>( &rhs );
79467       return *this;
79468     }
79469 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79470     SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79471     {
79472       pNext = pNext_;
79473       return *this;
79474     }
79475 
setSurfaceCountersVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79476     SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
79477     {
79478       surfaceCounters = surfaceCounters_;
79479       return *this;
79480     }
79481 
79482 
operator VkSwapchainCounterCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79483     operator VkSwapchainCounterCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
79484     {
79485       return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>( this );
79486     }
79487 
operator VkSwapchainCounterCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79488     operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
79489     {
79490       return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>( this );
79491     }
79492 
79493 
79494 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79495     auto operator<=>( SwapchainCounterCreateInfoEXT const& ) const = default;
79496 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79497     bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79498     {
79499       return ( sType == rhs.sType )
79500           && ( pNext == rhs.pNext )
79501           && ( surfaceCounters == rhs.surfaceCounters );
79502     }
79503 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79504     bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79505     {
79506       return !operator==( rhs );
79507     }
79508 #endif
79509 
79510 
79511 
79512   public:
79513     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
79514     const void* pNext = {};
79515     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {};
79516 
79517   };
79518   static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" );
79519   static_assert( std::is_standard_layout<SwapchainCounterCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
79520 
79521   template <>
79522   struct CppType<StructureType, StructureType::eSwapchainCounterCreateInfoEXT>
79523   {
79524     using Type = SwapchainCounterCreateInfoEXT;
79525   };
79526 
79527   struct SwapchainDisplayNativeHdrCreateInfoAMD
79528   {
79529     static const bool allowDuplicate = false;
79530     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
79531 
79532 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79533     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {}) VULKAN_HPP_NOEXCEPT
79534     : localDimmingEnable( localDimmingEnable_ )
79535     {}
79536 
79537     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79538 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79539     SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79540       : SwapchainDisplayNativeHdrCreateInfoAMD( *reinterpret_cast<SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs ) )
79541     {}
79542 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79543 
79544     VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79545 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79546     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79547     {
79548       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs );
79549       return *this;
79550     }
79551 
setPNextVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79552     SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79553     {
79554       pNext = pNext_;
79555       return *this;
79556     }
79557 
setLocalDimmingEnableVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79558     SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
79559     {
79560       localDimmingEnable = localDimmingEnable_;
79561       return *this;
79562     }
79563 
79564 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79565     operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
79566     {
79567       return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
79568     }
79569 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79570     operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
79571     {
79572       return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
79573     }
79574 
79575 
79576 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79577     auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const& ) const = default;
79578 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79579     bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
79580     {
79581       return ( sType == rhs.sType )
79582           && ( pNext == rhs.pNext )
79583           && ( localDimmingEnable == rhs.localDimmingEnable );
79584     }
79585 
operator !=VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79586     bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
79587     {
79588       return !operator==( rhs );
79589     }
79590 #endif
79591 
79592 
79593 
79594   public:
79595     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
79596     const void* pNext = {};
79597     VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {};
79598 
79599   };
79600   static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" );
79601   static_assert( std::is_standard_layout<SwapchainDisplayNativeHdrCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
79602 
79603   template <>
79604   struct CppType<StructureType, StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD>
79605   {
79606     using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
79607   };
79608 
79609   struct TextureLODGatherFormatPropertiesAMD
79610   {
79611     static const bool allowDuplicate = false;
79612     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD;
79613 
79614 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79615     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD(VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {}) VULKAN_HPP_NOEXCEPT
79616     : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
79617     {}
79618 
79619     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79620 
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79621     TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79622       : TextureLODGatherFormatPropertiesAMD( *reinterpret_cast<TextureLODGatherFormatPropertiesAMD const *>( &rhs ) )
79623     {}
79624 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79625 
79626     VULKAN_HPP_CONSTEXPR_14 TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79627 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79628     TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79629     {
79630       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const *>( &rhs );
79631       return *this;
79632     }
79633 
79634 
operator VkTextureLODGatherFormatPropertiesAMD const&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79635     operator VkTextureLODGatherFormatPropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
79636     {
79637       return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>( this );
79638     }
79639 
operator VkTextureLODGatherFormatPropertiesAMD&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79640     operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
79641     {
79642       return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>( this );
79643     }
79644 
79645 
79646 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79647     auto operator<=>( TextureLODGatherFormatPropertiesAMD const& ) const = default;
79648 #else
operator ==VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79649     bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
79650     {
79651       return ( sType == rhs.sType )
79652           && ( pNext == rhs.pNext )
79653           && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
79654     }
79655 
operator !=VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79656     bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
79657     {
79658       return !operator==( rhs );
79659     }
79660 #endif
79661 
79662 
79663 
79664   public:
79665     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
79666     void* pNext = {};
79667     VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {};
79668 
79669   };
79670   static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" );
79671   static_assert( std::is_standard_layout<TextureLODGatherFormatPropertiesAMD>::value, "struct wrapper is not a standard layout!" );
79672 
79673   template <>
79674   struct CppType<StructureType, StructureType::eTextureLodGatherFormatPropertiesAMD>
79675   {
79676     using Type = TextureLODGatherFormatPropertiesAMD;
79677   };
79678 
79679   struct TimelineSemaphoreSubmitInfo
79680   {
79681     static const bool allowDuplicate = false;
79682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo;
79683 
79684 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79685     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo(uint32_t waitSemaphoreValueCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValueCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT
79686     : waitSemaphoreValueCount( waitSemaphoreValueCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValueCount( signalSemaphoreValueCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
79687     {}
79688 
79689     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79690 
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79691     TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
79692       : TimelineSemaphoreSubmitInfo( *reinterpret_cast<TimelineSemaphoreSubmitInfo const *>( &rhs ) )
79693     {}
79694 
79695 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79696     TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {} )
79697     : waitSemaphoreValueCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValueCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
79698     {}
79699 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79700 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79701 
79702     VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79703 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79704     TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
79705     {
79706       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const *>( &rhs );
79707       return *this;
79708     }
79709 
setPNextVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79710     TimelineSemaphoreSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79711     {
79712       pNext = pNext_;
79713       return *this;
79714     }
79715 
setWaitSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79716     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
79717     {
79718       waitSemaphoreValueCount = waitSemaphoreValueCount_;
79719       return *this;
79720     }
79721 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79722     TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
79723     {
79724       pWaitSemaphoreValues = pWaitSemaphoreValues_;
79725       return *this;
79726     }
79727 
79728 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79729     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
79730     {
79731       waitSemaphoreValueCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
79732       pWaitSemaphoreValues = waitSemaphoreValues_.data();
79733       return *this;
79734     }
79735 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79736 
setSignalSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79737     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
79738     {
79739       signalSemaphoreValueCount = signalSemaphoreValueCount_;
79740       return *this;
79741     }
79742 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79743     TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
79744     {
79745       pSignalSemaphoreValues = pSignalSemaphoreValues_;
79746       return *this;
79747     }
79748 
79749 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79750     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
79751     {
79752       signalSemaphoreValueCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
79753       pSignalSemaphoreValues = signalSemaphoreValues_.data();
79754       return *this;
79755     }
79756 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79757 
79758 
operator VkTimelineSemaphoreSubmitInfo const&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79759     operator VkTimelineSemaphoreSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
79760     {
79761       return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>( this );
79762     }
79763 
operator VkTimelineSemaphoreSubmitInfo&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79764     operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
79765     {
79766       return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>( this );
79767     }
79768 
79769 
79770 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79771     auto operator<=>( TimelineSemaphoreSubmitInfo const& ) const = default;
79772 #else
operator ==VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79773     bool operator==( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
79774     {
79775       return ( sType == rhs.sType )
79776           && ( pNext == rhs.pNext )
79777           && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount )
79778           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
79779           && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount )
79780           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
79781     }
79782 
operator !=VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79783     bool operator!=( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
79784     {
79785       return !operator==( rhs );
79786     }
79787 #endif
79788 
79789 
79790 
79791   public:
79792     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo;
79793     const void* pNext = {};
79794     uint32_t waitSemaphoreValueCount = {};
79795     const uint64_t* pWaitSemaphoreValues = {};
79796     uint32_t signalSemaphoreValueCount = {};
79797     const uint64_t* pSignalSemaphoreValues = {};
79798 
79799   };
79800   static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), "struct and wrapper have different size!" );
79801   static_assert( std::is_standard_layout<TimelineSemaphoreSubmitInfo>::value, "struct wrapper is not a standard layout!" );
79802 
79803   template <>
79804   struct CppType<StructureType, StructureType::eTimelineSemaphoreSubmitInfo>
79805   {
79806     using Type = TimelineSemaphoreSubmitInfo;
79807   };
79808   using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
79809 
79810   struct TraceRaysIndirectCommandKHR
79811   {
79812 
79813 
79814 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79815     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
79816     : width( width_ ), height( height_ ), depth( depth_ )
79817     {}
79818 
79819     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79820 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79821     TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79822       : TraceRaysIndirectCommandKHR( *reinterpret_cast<TraceRaysIndirectCommandKHR const *>( &rhs ) )
79823     {}
79824 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79825     explicit TraceRaysIndirectCommandKHR( Extent2D const& extent2D, uint32_t depth_ = {} )
79826       : width( extent2D.width )
79827       , height( extent2D.height )
79828       , depth( depth_ )
79829     {}
79830 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79831 
79832     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79833 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79834     TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79835     {
79836       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const *>( &rhs );
79837       return *this;
79838     }
79839 
setWidthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79840     TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
79841     {
79842       width = width_;
79843       return *this;
79844     }
79845 
setHeightVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79846     TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
79847     {
79848       height = height_;
79849       return *this;
79850     }
79851 
setDepthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79852     TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
79853     {
79854       depth = depth_;
79855       return *this;
79856     }
79857 
79858 
operator VkTraceRaysIndirectCommandKHR const&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79859     operator VkTraceRaysIndirectCommandKHR const&() const VULKAN_HPP_NOEXCEPT
79860     {
79861       return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR*>( this );
79862     }
79863 
operator VkTraceRaysIndirectCommandKHR&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79864     operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
79865     {
79866       return *reinterpret_cast<VkTraceRaysIndirectCommandKHR*>( this );
79867     }
79868 
79869 
79870 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79871     auto operator<=>( TraceRaysIndirectCommandKHR const& ) const = default;
79872 #else
operator ==VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79873     bool operator==( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79874     {
79875       return ( width == rhs.width )
79876           && ( height == rhs.height )
79877           && ( depth == rhs.depth );
79878     }
79879 
operator !=VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79880     bool operator!=( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79881     {
79882       return !operator==( rhs );
79883     }
79884 #endif
79885 
79886 
79887 
79888   public:
79889     uint32_t width = {};
79890     uint32_t height = {};
79891     uint32_t depth = {};
79892 
79893   };
79894   static_assert( sizeof( TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ), "struct and wrapper have different size!" );
79895   static_assert( std::is_standard_layout<TraceRaysIndirectCommandKHR>::value, "struct wrapper is not a standard layout!" );
79896 
79897   struct ValidationFeaturesEXT
79898   {
79899     static const bool allowDuplicate = false;
79900     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT;
79901 
79902 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79903     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
79904     : enabledValidationFeatureCount( enabledValidationFeatureCount_ ), pEnabledValidationFeatures( pEnabledValidationFeatures_ ), disabledValidationFeatureCount( disabledValidationFeatureCount_ ), pDisabledValidationFeatures( pDisabledValidationFeatures_ )
79905     {}
79906 
79907     VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79908 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79909     ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79910       : ValidationFeaturesEXT( *reinterpret_cast<ValidationFeaturesEXT const *>( &rhs ) )
79911     {}
79912 
79913 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79914     ValidationFeaturesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ = {} )
79915     : enabledValidationFeatureCount( static_cast<uint32_t>( enabledValidationFeatures_.size() ) ), pEnabledValidationFeatures( enabledValidationFeatures_.data() ), disabledValidationFeatureCount( static_cast<uint32_t>( disabledValidationFeatures_.size() ) ), pDisabledValidationFeatures( disabledValidationFeatures_.data() )
79916     {}
79917 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79918 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79919 
79920     VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79921 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79922     ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79923     {
79924       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const *>( &rhs );
79925       return *this;
79926     }
79927 
setPNextVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79928     ValidationFeaturesEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79929     {
79930       pNext = pNext_;
79931       return *this;
79932     }
79933 
setEnabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79934     ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
79935     {
79936       enabledValidationFeatureCount = enabledValidationFeatureCount_;
79937       return *this;
79938     }
79939 
setPEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79940     ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79941     {
79942       pEnabledValidationFeatures = pEnabledValidationFeatures_;
79943       return *this;
79944     }
79945 
79946 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79947     ValidationFeaturesEXT & setEnabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79948     {
79949       enabledValidationFeatureCount = static_cast<uint32_t>( enabledValidationFeatures_.size() );
79950       pEnabledValidationFeatures = enabledValidationFeatures_.data();
79951       return *this;
79952     }
79953 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79954 
setDisabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79955     ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
79956     {
79957       disabledValidationFeatureCount = disabledValidationFeatureCount_;
79958       return *this;
79959     }
79960 
setPDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79961     ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79962     {
79963       pDisabledValidationFeatures = pDisabledValidationFeatures_;
79964       return *this;
79965     }
79966 
79967 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79968     ValidationFeaturesEXT & setDisabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79969     {
79970       disabledValidationFeatureCount = static_cast<uint32_t>( disabledValidationFeatures_.size() );
79971       pDisabledValidationFeatures = disabledValidationFeatures_.data();
79972       return *this;
79973     }
79974 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79975 
79976 
operator VkValidationFeaturesEXT const&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79977     operator VkValidationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
79978     {
79979       return *reinterpret_cast<const VkValidationFeaturesEXT*>( this );
79980     }
79981 
operator VkValidationFeaturesEXT&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79982     operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
79983     {
79984       return *reinterpret_cast<VkValidationFeaturesEXT*>( this );
79985     }
79986 
79987 
79988 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79989     auto operator<=>( ValidationFeaturesEXT const& ) const = default;
79990 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79991     bool operator==( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79992     {
79993       return ( sType == rhs.sType )
79994           && ( pNext == rhs.pNext )
79995           && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount )
79996           && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures )
79997           && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount )
79998           && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
79999     }
80000 
operator !=VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT80001     bool operator!=( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
80002     {
80003       return !operator==( rhs );
80004     }
80005 #endif
80006 
80007 
80008 
80009   public:
80010     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT;
80011     const void* pNext = {};
80012     uint32_t enabledValidationFeatureCount = {};
80013     const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures = {};
80014     uint32_t disabledValidationFeatureCount = {};
80015     const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures = {};
80016 
80017   };
80018   static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" );
80019   static_assert( std::is_standard_layout<ValidationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
80020 
80021   template <>
80022   struct CppType<StructureType, StructureType::eValidationFeaturesEXT>
80023   {
80024     using Type = ValidationFeaturesEXT;
80025   };
80026 
80027   struct ValidationFlagsEXT
80028   {
80029     static const bool allowDuplicate = false;
80030     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT;
80031 
80032 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT80033     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT(uint32_t disabledValidationCheckCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ = {}) VULKAN_HPP_NOEXCEPT
80034     : disabledValidationCheckCount( disabledValidationCheckCount_ ), pDisabledValidationChecks( pDisabledValidationChecks_ )
80035     {}
80036 
80037     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80038 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT80039     ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
80040       : ValidationFlagsEXT( *reinterpret_cast<ValidationFlagsEXT const *>( &rhs ) )
80041     {}
80042 
80043 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT80044     ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ )
80045     : disabledValidationCheckCount( static_cast<uint32_t>( disabledValidationChecks_.size() ) ), pDisabledValidationChecks( disabledValidationChecks_.data() )
80046     {}
80047 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80048 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80049 
80050     VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80051 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT80052     ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
80053     {
80054       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const *>( &rhs );
80055       return *this;
80056     }
80057 
setPNextVULKAN_HPP_NAMESPACE::ValidationFlagsEXT80058     ValidationFlagsEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80059     {
80060       pNext = pNext_;
80061       return *this;
80062     }
80063 
setDisabledValidationCheckCountVULKAN_HPP_NAMESPACE::ValidationFlagsEXT80064     ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT
80065     {
80066       disabledValidationCheckCount = disabledValidationCheckCount_;
80067       return *this;
80068     }
80069 
setPDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT80070     ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
80071     {
80072       pDisabledValidationChecks = pDisabledValidationChecks_;
80073       return *this;
80074     }
80075 
80076 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT80077     ValidationFlagsEXT & setDisabledValidationChecks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
80078     {
80079       disabledValidationCheckCount = static_cast<uint32_t>( disabledValidationChecks_.size() );
80080       pDisabledValidationChecks = disabledValidationChecks_.data();
80081       return *this;
80082     }
80083 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80084 
80085 
operator VkValidationFlagsEXT const&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT80086     operator VkValidationFlagsEXT const&() const VULKAN_HPP_NOEXCEPT
80087     {
80088       return *reinterpret_cast<const VkValidationFlagsEXT*>( this );
80089     }
80090 
operator VkValidationFlagsEXT&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT80091     operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
80092     {
80093       return *reinterpret_cast<VkValidationFlagsEXT*>( this );
80094     }
80095 
80096 
80097 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80098     auto operator<=>( ValidationFlagsEXT const& ) const = default;
80099 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFlagsEXT80100     bool operator==( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
80101     {
80102       return ( sType == rhs.sType )
80103           && ( pNext == rhs.pNext )
80104           && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount )
80105           && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
80106     }
80107 
operator !=VULKAN_HPP_NAMESPACE::ValidationFlagsEXT80108     bool operator!=( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
80109     {
80110       return !operator==( rhs );
80111     }
80112 #endif
80113 
80114 
80115 
80116   public:
80117     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT;
80118     const void* pNext = {};
80119     uint32_t disabledValidationCheckCount = {};
80120     const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks = {};
80121 
80122   };
80123   static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" );
80124   static_assert( std::is_standard_layout<ValidationFlagsEXT>::value, "struct wrapper is not a standard layout!" );
80125 
80126   template <>
80127   struct CppType<StructureType, StructureType::eValidationFlagsEXT>
80128   {
80129     using Type = ValidationFlagsEXT;
80130   };
80131 
80132 #ifdef VK_USE_PLATFORM_VI_NN
80133   struct ViSurfaceCreateInfoNN
80134   {
80135     static const bool allowDuplicate = false;
80136     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN;
80137 
80138 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80139     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void* window_ = {}) VULKAN_HPP_NOEXCEPT
80140     : flags( flags_ ), window( window_ )
80141     {}
80142 
80143     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80144 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80145     ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
80146       : ViSurfaceCreateInfoNN( *reinterpret_cast<ViSurfaceCreateInfoNN const *>( &rhs ) )
80147     {}
80148 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80149 
80150     VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80151 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80152     ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
80153     {
80154       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const *>( &rhs );
80155       return *this;
80156     }
80157 
setPNextVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80158     ViSurfaceCreateInfoNN & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80159     {
80160       pNext = pNext_;
80161       return *this;
80162     }
80163 
setFlagsVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80164     ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT
80165     {
80166       flags = flags_;
80167       return *this;
80168     }
80169 
setWindowVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80170     ViSurfaceCreateInfoNN & setWindow( void* window_ ) VULKAN_HPP_NOEXCEPT
80171     {
80172       window = window_;
80173       return *this;
80174     }
80175 
80176 
operator VkViSurfaceCreateInfoNN const&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80177     operator VkViSurfaceCreateInfoNN const&() const VULKAN_HPP_NOEXCEPT
80178     {
80179       return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>( this );
80180     }
80181 
operator VkViSurfaceCreateInfoNN&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80182     operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
80183     {
80184       return *reinterpret_cast<VkViSurfaceCreateInfoNN*>( this );
80185     }
80186 
80187 
80188 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80189     auto operator<=>( ViSurfaceCreateInfoNN const& ) const = default;
80190 #else
operator ==VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80191     bool operator==( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
80192     {
80193       return ( sType == rhs.sType )
80194           && ( pNext == rhs.pNext )
80195           && ( flags == rhs.flags )
80196           && ( window == rhs.window );
80197     }
80198 
operator !=VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN80199     bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
80200     {
80201       return !operator==( rhs );
80202     }
80203 #endif
80204 
80205 
80206 
80207   public:
80208     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
80209     const void* pNext = {};
80210     VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {};
80211     void* window = {};
80212 
80213   };
80214   static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" );
80215   static_assert( std::is_standard_layout<ViSurfaceCreateInfoNN>::value, "struct wrapper is not a standard layout!" );
80216 
80217   template <>
80218   struct CppType<StructureType, StructureType::eViSurfaceCreateInfoNN>
80219   {
80220     using Type = ViSurfaceCreateInfoNN;
80221   };
80222 #endif /*VK_USE_PLATFORM_VI_NN*/
80223 
80224 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
80225   struct WaylandSurfaceCreateInfoKHR
80226   {
80227     static const bool allowDuplicate = false;
80228     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR;
80229 
80230 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80231     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, struct wl_display* display_ = {}, struct wl_surface* surface_ = {}) VULKAN_HPP_NOEXCEPT
80232     : flags( flags_ ), display( display_ ), surface( surface_ )
80233     {}
80234 
80235     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80236 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80237     WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80238       : WaylandSurfaceCreateInfoKHR( *reinterpret_cast<WaylandSurfaceCreateInfoKHR const *>( &rhs ) )
80239     {}
80240 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80241 
80242     VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80243 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80244     WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80245     {
80246       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const *>( &rhs );
80247       return *this;
80248     }
80249 
setPNextVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80250     WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80251     {
80252       pNext = pNext_;
80253       return *this;
80254     }
80255 
setFlagsVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80256     WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
80257     {
80258       flags = flags_;
80259       return *this;
80260     }
80261 
setDisplayVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80262     WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ ) VULKAN_HPP_NOEXCEPT
80263     {
80264       display = display_;
80265       return *this;
80266     }
80267 
setSurfaceVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80268     WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ ) VULKAN_HPP_NOEXCEPT
80269     {
80270       surface = surface_;
80271       return *this;
80272     }
80273 
80274 
operator VkWaylandSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80275     operator VkWaylandSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80276     {
80277       return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( this );
80278     }
80279 
operator VkWaylandSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80280     operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80281     {
80282       return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>( this );
80283     }
80284 
80285 
80286 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80287     auto operator<=>( WaylandSurfaceCreateInfoKHR const& ) const = default;
80288 #else
operator ==VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80289     bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80290     {
80291       return ( sType == rhs.sType )
80292           && ( pNext == rhs.pNext )
80293           && ( flags == rhs.flags )
80294           && ( display == rhs.display )
80295           && ( surface == rhs.surface );
80296     }
80297 
operator !=VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80298     bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80299     {
80300       return !operator==( rhs );
80301     }
80302 #endif
80303 
80304 
80305 
80306   public:
80307     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
80308     const void* pNext = {};
80309     VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {};
80310     struct wl_display* display = {};
80311     struct wl_surface* surface = {};
80312 
80313   };
80314   static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
80315   static_assert( std::is_standard_layout<WaylandSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
80316 
80317   template <>
80318   struct CppType<StructureType, StructureType::eWaylandSurfaceCreateInfoKHR>
80319   {
80320     using Type = WaylandSurfaceCreateInfoKHR;
80321   };
80322 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
80323 
80324 #ifdef VK_USE_PLATFORM_WIN32_KHR
80325   struct Win32KeyedMutexAcquireReleaseInfoKHR
80326   {
80327     static const bool allowDuplicate = false;
80328     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
80329 
80330 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80331     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
80332     : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeouts( pAcquireTimeouts_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
80333     {}
80334 
80335     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80336 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80337     Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80338       : Win32KeyedMutexAcquireReleaseInfoKHR( *reinterpret_cast<Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs ) )
80339     {}
80340 
80341 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80342     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_ = {} )
80343     : 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() )
80344     {
80345 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80346       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
80347       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() );
80348       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() );
80349 #else
80350       if ( acquireSyncs_.size() != acquireKeys_.size() )
80351       {
80352         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" );
80353       }
80354       if ( acquireSyncs_.size() != acquireTimeouts_.size() )
80355       {
80356         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" );
80357       }
80358       if ( acquireKeys_.size() != acquireTimeouts_.size() )
80359       {
80360         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" );
80361       }
80362 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
80363 
80364 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80365       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
80366 #else
80367       if ( releaseSyncs_.size() != releaseKeys_.size() )
80368       {
80369         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" );
80370       }
80371 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
80372     }
80373 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80374 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80375 
80376     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80377 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80378     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80379     {
80380       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs );
80381       return *this;
80382     }
80383 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80384     Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80385     {
80386       pNext = pNext_;
80387       return *this;
80388     }
80389 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80390     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
80391     {
80392       acquireCount = acquireCount_;
80393       return *this;
80394     }
80395 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80396     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
80397     {
80398       pAcquireSyncs = pAcquireSyncs_;
80399       return *this;
80400     }
80401 
80402 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80403     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
80404     {
80405       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
80406       pAcquireSyncs = acquireSyncs_.data();
80407       return *this;
80408     }
80409 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80410 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80411     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
80412     {
80413       pAcquireKeys = pAcquireKeys_;
80414       return *this;
80415     }
80416 
80417 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80418     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
80419     {
80420       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
80421       pAcquireKeys = acquireKeys_.data();
80422       return *this;
80423     }
80424 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80425 
setPAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80426     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
80427     {
80428       pAcquireTimeouts = pAcquireTimeouts_;
80429       return *this;
80430     }
80431 
80432 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80433     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
80434     {
80435       acquireCount = static_cast<uint32_t>( acquireTimeouts_.size() );
80436       pAcquireTimeouts = acquireTimeouts_.data();
80437       return *this;
80438     }
80439 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80440 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80441     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
80442     {
80443       releaseCount = releaseCount_;
80444       return *this;
80445     }
80446 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80447     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
80448     {
80449       pReleaseSyncs = pReleaseSyncs_;
80450       return *this;
80451     }
80452 
80453 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80454     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
80455     {
80456       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
80457       pReleaseSyncs = releaseSyncs_.data();
80458       return *this;
80459     }
80460 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80461 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80462     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
80463     {
80464       pReleaseKeys = pReleaseKeys_;
80465       return *this;
80466     }
80467 
80468 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80469     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
80470     {
80471       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
80472       pReleaseKeys = releaseKeys_.data();
80473       return *this;
80474     }
80475 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80476 
80477 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80478     operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80479     {
80480       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
80481     }
80482 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80483     operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
80484     {
80485       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
80486     }
80487 
80488 
80489 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80490     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const& ) const = default;
80491 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80492     bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80493     {
80494       return ( sType == rhs.sType )
80495           && ( pNext == rhs.pNext )
80496           && ( acquireCount == rhs.acquireCount )
80497           && ( pAcquireSyncs == rhs.pAcquireSyncs )
80498           && ( pAcquireKeys == rhs.pAcquireKeys )
80499           && ( pAcquireTimeouts == rhs.pAcquireTimeouts )
80500           && ( releaseCount == rhs.releaseCount )
80501           && ( pReleaseSyncs == rhs.pReleaseSyncs )
80502           && ( pReleaseKeys == rhs.pReleaseKeys );
80503     }
80504 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80505     bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80506     {
80507       return !operator==( rhs );
80508     }
80509 #endif
80510 
80511 
80512 
80513   public:
80514     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
80515     const void* pNext = {};
80516     uint32_t acquireCount = {};
80517     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
80518     const uint64_t* pAcquireKeys = {};
80519     const uint32_t* pAcquireTimeouts = {};
80520     uint32_t releaseCount = {};
80521     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
80522     const uint64_t* pReleaseKeys = {};
80523 
80524   };
80525   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" );
80526   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoKHR>::value, "struct wrapper is not a standard layout!" );
80527 
80528   template <>
80529   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR>
80530   {
80531     using Type = Win32KeyedMutexAcquireReleaseInfoKHR;
80532   };
80533 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80534 
80535 #ifdef VK_USE_PLATFORM_WIN32_KHR
80536   struct Win32KeyedMutexAcquireReleaseInfoNV
80537   {
80538     static const bool allowDuplicate = false;
80539     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
80540 
80541 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80542     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
80543     : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
80544     {}
80545 
80546     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80547 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80548     Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
80549       : Win32KeyedMutexAcquireReleaseInfoNV( *reinterpret_cast<Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs ) )
80550     {}
80551 
80552 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80553     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_ = {} )
80554     : 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() )
80555     {
80556 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80557       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
80558       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() );
80559       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() );
80560 #else
80561       if ( acquireSyncs_.size() != acquireKeys_.size() )
80562       {
80563         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" );
80564       }
80565       if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() )
80566       {
80567         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" );
80568       }
80569       if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() )
80570       {
80571         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" );
80572       }
80573 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
80574 
80575 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80576       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
80577 #else
80578       if ( releaseSyncs_.size() != releaseKeys_.size() )
80579       {
80580         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" );
80581       }
80582 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
80583     }
80584 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80585 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80586 
80587     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80588 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80589     Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
80590     {
80591       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs );
80592       return *this;
80593     }
80594 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80595     Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80596     {
80597       pNext = pNext_;
80598       return *this;
80599     }
80600 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80601     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
80602     {
80603       acquireCount = acquireCount_;
80604       return *this;
80605     }
80606 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80607     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
80608     {
80609       pAcquireSyncs = pAcquireSyncs_;
80610       return *this;
80611     }
80612 
80613 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80614     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
80615     {
80616       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
80617       pAcquireSyncs = acquireSyncs_.data();
80618       return *this;
80619     }
80620 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80621 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80622     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
80623     {
80624       pAcquireKeys = pAcquireKeys_;
80625       return *this;
80626     }
80627 
80628 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80629     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
80630     {
80631       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
80632       pAcquireKeys = acquireKeys_.data();
80633       return *this;
80634     }
80635 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80636 
setPAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80637     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
80638     {
80639       pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
80640       return *this;
80641     }
80642 
80643 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80644     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
80645     {
80646       acquireCount = static_cast<uint32_t>( acquireTimeoutMilliseconds_.size() );
80647       pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data();
80648       return *this;
80649     }
80650 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80651 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80652     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
80653     {
80654       releaseCount = releaseCount_;
80655       return *this;
80656     }
80657 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80658     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
80659     {
80660       pReleaseSyncs = pReleaseSyncs_;
80661       return *this;
80662     }
80663 
80664 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80665     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
80666     {
80667       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
80668       pReleaseSyncs = releaseSyncs_.data();
80669       return *this;
80670     }
80671 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80672 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80673     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
80674     {
80675       pReleaseKeys = pReleaseKeys_;
80676       return *this;
80677     }
80678 
80679 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80680     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
80681     {
80682       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
80683       pReleaseKeys = releaseKeys_.data();
80684       return *this;
80685     }
80686 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80687 
80688 
operator VkWin32KeyedMutexAcquireReleaseInfoNV const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80689     operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const VULKAN_HPP_NOEXCEPT
80690     {
80691       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
80692     }
80693 
operator VkWin32KeyedMutexAcquireReleaseInfoNV&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80694     operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
80695     {
80696       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
80697     }
80698 
80699 
80700 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80701     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const& ) const = default;
80702 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80703     bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
80704     {
80705       return ( sType == rhs.sType )
80706           && ( pNext == rhs.pNext )
80707           && ( acquireCount == rhs.acquireCount )
80708           && ( pAcquireSyncs == rhs.pAcquireSyncs )
80709           && ( pAcquireKeys == rhs.pAcquireKeys )
80710           && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds )
80711           && ( releaseCount == rhs.releaseCount )
80712           && ( pReleaseSyncs == rhs.pReleaseSyncs )
80713           && ( pReleaseKeys == rhs.pReleaseKeys );
80714     }
80715 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80716     bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
80717     {
80718       return !operator==( rhs );
80719     }
80720 #endif
80721 
80722 
80723 
80724   public:
80725     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
80726     const void* pNext = {};
80727     uint32_t acquireCount = {};
80728     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
80729     const uint64_t* pAcquireKeys = {};
80730     const uint32_t* pAcquireTimeoutMilliseconds = {};
80731     uint32_t releaseCount = {};
80732     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
80733     const uint64_t* pReleaseKeys = {};
80734 
80735   };
80736   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" );
80737   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoNV>::value, "struct wrapper is not a standard layout!" );
80738 
80739   template <>
80740   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoNV>
80741   {
80742     using Type = Win32KeyedMutexAcquireReleaseInfoNV;
80743   };
80744 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80745 
80746 #ifdef VK_USE_PLATFORM_WIN32_KHR
80747   struct Win32SurfaceCreateInfoKHR
80748   {
80749     static const bool allowDuplicate = false;
80750     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR;
80751 
80752 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80753     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, HINSTANCE hinstance_ = {}, HWND hwnd_ = {}) VULKAN_HPP_NOEXCEPT
80754     : flags( flags_ ), hinstance( hinstance_ ), hwnd( hwnd_ )
80755     {}
80756 
80757     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80758 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80759     Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80760       : Win32SurfaceCreateInfoKHR( *reinterpret_cast<Win32SurfaceCreateInfoKHR const *>( &rhs ) )
80761     {}
80762 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80763 
80764     VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80765 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80766     Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80767     {
80768       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const *>( &rhs );
80769       return *this;
80770     }
80771 
setPNextVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80772     Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80773     {
80774       pNext = pNext_;
80775       return *this;
80776     }
80777 
setFlagsVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80778     Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
80779     {
80780       flags = flags_;
80781       return *this;
80782     }
80783 
setHinstanceVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80784     Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT
80785     {
80786       hinstance = hinstance_;
80787       return *this;
80788     }
80789 
setHwndVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80790     Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT
80791     {
80792       hwnd = hwnd_;
80793       return *this;
80794     }
80795 
80796 
operator VkWin32SurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80797     operator VkWin32SurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80798     {
80799       return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( this );
80800     }
80801 
operator VkWin32SurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80802     operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80803     {
80804       return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>( this );
80805     }
80806 
80807 
80808 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80809     auto operator<=>( Win32SurfaceCreateInfoKHR const& ) const = default;
80810 #else
operator ==VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80811     bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80812     {
80813       return ( sType == rhs.sType )
80814           && ( pNext == rhs.pNext )
80815           && ( flags == rhs.flags )
80816           && ( hinstance == rhs.hinstance )
80817           && ( hwnd == rhs.hwnd );
80818     }
80819 
operator !=VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80820     bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80821     {
80822       return !operator==( rhs );
80823     }
80824 #endif
80825 
80826 
80827 
80828   public:
80829     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
80830     const void* pNext = {};
80831     VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {};
80832     HINSTANCE hinstance = {};
80833     HWND hwnd = {};
80834 
80835   };
80836   static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
80837   static_assert( std::is_standard_layout<Win32SurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
80838 
80839   template <>
80840   struct CppType<StructureType, StructureType::eWin32SurfaceCreateInfoKHR>
80841   {
80842     using Type = Win32SurfaceCreateInfoKHR;
80843   };
80844 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80845 
80846   struct WriteDescriptorSetAccelerationStructureKHR
80847   {
80848     static const bool allowDuplicate = false;
80849     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
80850 
80851 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80852     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT
80853     : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ )
80854     {}
80855 
80856     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80857 
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80858     WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80859       : WriteDescriptorSetAccelerationStructureKHR( *reinterpret_cast<WriteDescriptorSetAccelerationStructureKHR const *>( &rhs ) )
80860     {}
80861 
80862 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80863     WriteDescriptorSetAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ )
80864     : accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() )
80865     {}
80866 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80867 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80868 
80869     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80870 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80871     WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80872     {
80873       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const *>( &rhs );
80874       return *this;
80875     }
80876 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80877     WriteDescriptorSetAccelerationStructureKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80878     {
80879       pNext = pNext_;
80880       return *this;
80881     }
80882 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80883     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
80884     {
80885       accelerationStructureCount = accelerationStructureCount_;
80886       return *this;
80887     }
80888 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80889     WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
80890     {
80891       pAccelerationStructures = pAccelerationStructures_;
80892       return *this;
80893     }
80894 
80895 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80896     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
80897     {
80898       accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
80899       pAccelerationStructures = accelerationStructures_.data();
80900       return *this;
80901     }
80902 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80903 
80904 
operator VkWriteDescriptorSetAccelerationStructureKHR const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80905     operator VkWriteDescriptorSetAccelerationStructureKHR const&() const VULKAN_HPP_NOEXCEPT
80906     {
80907       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>( this );
80908     }
80909 
operator VkWriteDescriptorSetAccelerationStructureKHR&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80910     operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
80911     {
80912       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>( this );
80913     }
80914 
80915 
80916 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80917     auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const& ) const = default;
80918 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80919     bool operator==( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80920     {
80921       return ( sType == rhs.sType )
80922           && ( pNext == rhs.pNext )
80923           && ( accelerationStructureCount == rhs.accelerationStructureCount )
80924           && ( pAccelerationStructures == rhs.pAccelerationStructures );
80925     }
80926 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80927     bool operator!=( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80928     {
80929       return !operator==( rhs );
80930     }
80931 #endif
80932 
80933 
80934 
80935   public:
80936     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
80937     const void* pNext = {};
80938     uint32_t accelerationStructureCount = {};
80939     const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures = {};
80940 
80941   };
80942   static_assert( sizeof( WriteDescriptorSetAccelerationStructureKHR ) == sizeof( VkWriteDescriptorSetAccelerationStructureKHR ), "struct and wrapper have different size!" );
80943   static_assert( std::is_standard_layout<WriteDescriptorSetAccelerationStructureKHR>::value, "struct wrapper is not a standard layout!" );
80944 
80945   template <>
80946   struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureKHR>
80947   {
80948     using Type = WriteDescriptorSetAccelerationStructureKHR;
80949   };
80950 
80951   struct WriteDescriptorSetAccelerationStructureNV
80952   {
80953     static const bool allowDuplicate = false;
80954     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
80955 
80956 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV80957     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT
80958     : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ )
80959     {}
80960 
80961     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80962 
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV80963     WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT
80964       : WriteDescriptorSetAccelerationStructureNV( *reinterpret_cast<WriteDescriptorSetAccelerationStructureNV const *>( &rhs ) )
80965     {}
80966 
80967 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV80968     WriteDescriptorSetAccelerationStructureNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures_ )
80969     : accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() )
80970     {}
80971 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80972 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80973 
80974     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV & operator=( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80975 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV80976     WriteDescriptorSetAccelerationStructureNV & operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT
80977     {
80978       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV const *>( &rhs );
80979       return *this;
80980     }
80981 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV80982     WriteDescriptorSetAccelerationStructureNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80983     {
80984       pNext = pNext_;
80985       return *this;
80986     }
80987 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV80988     WriteDescriptorSetAccelerationStructureNV & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
80989     {
80990       accelerationStructureCount = accelerationStructureCount_;
80991       return *this;
80992     }
80993 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV80994     WriteDescriptorSetAccelerationStructureNV & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
80995     {
80996       pAccelerationStructures = pAccelerationStructures_;
80997       return *this;
80998     }
80999 
81000 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV81001     WriteDescriptorSetAccelerationStructureNV & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
81002     {
81003       accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
81004       pAccelerationStructures = accelerationStructures_.data();
81005       return *this;
81006     }
81007 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
81008 
81009 
operator VkWriteDescriptorSetAccelerationStructureNV const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV81010     operator VkWriteDescriptorSetAccelerationStructureNV const&() const VULKAN_HPP_NOEXCEPT
81011     {
81012       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>( this );
81013     }
81014 
operator VkWriteDescriptorSetAccelerationStructureNV&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV81015     operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT
81016     {
81017       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>( this );
81018     }
81019 
81020 
81021 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81022     auto operator<=>( WriteDescriptorSetAccelerationStructureNV const& ) const = default;
81023 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV81024     bool operator==( WriteDescriptorSetAccelerationStructureNV const& rhs ) const VULKAN_HPP_NOEXCEPT
81025     {
81026       return ( sType == rhs.sType )
81027           && ( pNext == rhs.pNext )
81028           && ( accelerationStructureCount == rhs.accelerationStructureCount )
81029           && ( pAccelerationStructures == rhs.pAccelerationStructures );
81030     }
81031 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV81032     bool operator!=( WriteDescriptorSetAccelerationStructureNV const& rhs ) const VULKAN_HPP_NOEXCEPT
81033     {
81034       return !operator==( rhs );
81035     }
81036 #endif
81037 
81038 
81039 
81040   public:
81041     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
81042     const void* pNext = {};
81043     uint32_t accelerationStructureCount = {};
81044     const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures = {};
81045 
81046   };
81047   static_assert( sizeof( WriteDescriptorSetAccelerationStructureNV ) == sizeof( VkWriteDescriptorSetAccelerationStructureNV ), "struct and wrapper have different size!" );
81048   static_assert( std::is_standard_layout<WriteDescriptorSetAccelerationStructureNV>::value, "struct wrapper is not a standard layout!" );
81049 
81050   template <>
81051   struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureNV>
81052   {
81053     using Type = WriteDescriptorSetAccelerationStructureNV;
81054   };
81055 
81056   struct WriteDescriptorSetInlineUniformBlockEXT
81057   {
81058     static const bool allowDuplicate = false;
81059     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
81060 
81061 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81062     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT(uint32_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT
81063     : dataSize( dataSize_ ), pData( pData_ )
81064     {}
81065 
81066     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81067 
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81068     WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
81069       : WriteDescriptorSetInlineUniformBlockEXT( *reinterpret_cast<WriteDescriptorSetInlineUniformBlockEXT const *>( &rhs ) )
81070     {}
81071 
81072 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
81073     template <typename T>
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81074     WriteDescriptorSetInlineUniformBlockEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ )
81075     : dataSize( static_cast<uint32_t>( data_.size() * sizeof(T) ) ), pData( data_.data() )
81076     {}
81077 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
81078 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
81079 
81080     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlockEXT & operator=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81081 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81082     WriteDescriptorSetInlineUniformBlockEXT & operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
81083     {
81084       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT const *>( &rhs );
81085       return *this;
81086     }
81087 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81088     WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
81089     {
81090       pNext = pNext_;
81091       return *this;
81092     }
81093 
setDataSizeVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81094     WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT
81095     {
81096       dataSize = dataSize_;
81097       return *this;
81098     }
81099 
setPDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81100     WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
81101     {
81102       pData = pData_;
81103       return *this;
81104     }
81105 
81106 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
81107     template <typename T>
setDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81108     WriteDescriptorSetInlineUniformBlockEXT & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
81109     {
81110       dataSize = static_cast<uint32_t>( data_.size() * sizeof(T) );
81111       pData = data_.data();
81112       return *this;
81113     }
81114 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
81115 
81116 
operator VkWriteDescriptorSetInlineUniformBlockEXT const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81117     operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const VULKAN_HPP_NOEXCEPT
81118     {
81119       return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
81120     }
81121 
operator VkWriteDescriptorSetInlineUniformBlockEXT&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81122     operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT
81123     {
81124       return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
81125     }
81126 
81127 
81128 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81129     auto operator<=>( WriteDescriptorSetInlineUniformBlockEXT const& ) const = default;
81130 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81131     bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
81132     {
81133       return ( sType == rhs.sType )
81134           && ( pNext == rhs.pNext )
81135           && ( dataSize == rhs.dataSize )
81136           && ( pData == rhs.pData );
81137     }
81138 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT81139     bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
81140     {
81141       return !operator==( rhs );
81142     }
81143 #endif
81144 
81145 
81146 
81147   public:
81148     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
81149     const void* pNext = {};
81150     uint32_t dataSize = {};
81151     const void* pData = {};
81152 
81153   };
81154   static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" );
81155   static_assert( std::is_standard_layout<WriteDescriptorSetInlineUniformBlockEXT>::value, "struct wrapper is not a standard layout!" );
81156 
81157   template <>
81158   struct CppType<StructureType, StructureType::eWriteDescriptorSetInlineUniformBlockEXT>
81159   {
81160     using Type = WriteDescriptorSetInlineUniformBlockEXT;
81161   };
81162 
81163 #ifdef VK_USE_PLATFORM_XCB_KHR
81164   struct XcbSurfaceCreateInfoKHR
81165   {
81166     static const bool allowDuplicate = false;
81167     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR;
81168 
81169 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81170     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, xcb_connection_t* connection_ = {}, xcb_window_t window_ = {}) VULKAN_HPP_NOEXCEPT
81171     : flags( flags_ ), connection( connection_ ), window( window_ )
81172     {}
81173 
81174     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81175 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81176     XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
81177       : XcbSurfaceCreateInfoKHR( *reinterpret_cast<XcbSurfaceCreateInfoKHR const *>( &rhs ) )
81178     {}
81179 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
81180 
81181     VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81182 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81183     XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
81184     {
81185       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const *>( &rhs );
81186       return *this;
81187     }
81188 
setPNextVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81189     XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
81190     {
81191       pNext = pNext_;
81192       return *this;
81193     }
81194 
setFlagsVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81195     XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
81196     {
81197       flags = flags_;
81198       return *this;
81199     }
81200 
setConnectionVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81201     XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ ) VULKAN_HPP_NOEXCEPT
81202     {
81203       connection = connection_;
81204       return *this;
81205     }
81206 
setWindowVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81207     XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT
81208     {
81209       window = window_;
81210       return *this;
81211     }
81212 
81213 
operator VkXcbSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81214     operator VkXcbSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
81215     {
81216       return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( this );
81217     }
81218 
operator VkXcbSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81219     operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
81220     {
81221       return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>( this );
81222     }
81223 
81224 
81225 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81226     auto operator<=>( XcbSurfaceCreateInfoKHR const& ) const = default;
81227 #else
operator ==VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81228     bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
81229     {
81230       return ( sType == rhs.sType )
81231           && ( pNext == rhs.pNext )
81232           && ( flags == rhs.flags )
81233           && ( connection == rhs.connection )
81234           && ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 );
81235     }
81236 
operator !=VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR81237     bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
81238     {
81239       return !operator==( rhs );
81240     }
81241 #endif
81242 
81243 
81244 
81245   public:
81246     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
81247     const void* pNext = {};
81248     VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {};
81249     xcb_connection_t* connection = {};
81250     xcb_window_t window = {};
81251 
81252   };
81253   static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
81254   static_assert( std::is_standard_layout<XcbSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
81255 
81256   template <>
81257   struct CppType<StructureType, StructureType::eXcbSurfaceCreateInfoKHR>
81258   {
81259     using Type = XcbSurfaceCreateInfoKHR;
81260   };
81261 #endif /*VK_USE_PLATFORM_XCB_KHR*/
81262 
81263 #ifdef VK_USE_PLATFORM_XLIB_KHR
81264   struct XlibSurfaceCreateInfoKHR
81265   {
81266     static const bool allowDuplicate = false;
81267     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR;
81268 
81269 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81270     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, Display* dpy_ = {}, Window window_ = {}) VULKAN_HPP_NOEXCEPT
81271     : flags( flags_ ), dpy( dpy_ ), window( window_ )
81272     {}
81273 
81274     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81275 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81276     XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
81277       : XlibSurfaceCreateInfoKHR( *reinterpret_cast<XlibSurfaceCreateInfoKHR const *>( &rhs ) )
81278     {}
81279 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
81280 
81281     VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81282 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81283     XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
81284     {
81285       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const *>( &rhs );
81286       return *this;
81287     }
81288 
setPNextVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81289     XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
81290     {
81291       pNext = pNext_;
81292       return *this;
81293     }
81294 
setFlagsVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81295     XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
81296     {
81297       flags = flags_;
81298       return *this;
81299     }
81300 
setDpyVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81301     XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ ) VULKAN_HPP_NOEXCEPT
81302     {
81303       dpy = dpy_;
81304       return *this;
81305     }
81306 
setWindowVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81307     XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT
81308     {
81309       window = window_;
81310       return *this;
81311     }
81312 
81313 
operator VkXlibSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81314     operator VkXlibSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
81315     {
81316       return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( this );
81317     }
81318 
operator VkXlibSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81319     operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
81320     {
81321       return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>( this );
81322     }
81323 
81324 
81325 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81326     auto operator<=>( XlibSurfaceCreateInfoKHR const& ) const = default;
81327 #else
operator ==VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81328     bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
81329     {
81330       return ( sType == rhs.sType )
81331           && ( pNext == rhs.pNext )
81332           && ( flags == rhs.flags )
81333           && ( dpy == rhs.dpy )
81334           && ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 );
81335     }
81336 
operator !=VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR81337     bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
81338     {
81339       return !operator==( rhs );
81340     }
81341 #endif
81342 
81343 
81344 
81345   public:
81346     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
81347     const void* pNext = {};
81348     VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {};
81349     Display* dpy = {};
81350     Window window = {};
81351 
81352   };
81353   static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
81354   static_assert( std::is_standard_layout<XlibSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
81355 
81356   template <>
81357   struct CppType<StructureType, StructureType::eXlibSurfaceCreateInfoKHR>
81358   {
81359     using Type = XlibSurfaceCreateInfoKHR;
81360   };
81361 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
81362 
81363   class DebugReportCallbackEXT
81364   {
81365   public:
81366     using CType = VkDebugReportCallbackEXT;
81367 
81368     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT;
81369     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
81370 
81371   public:
DebugReportCallbackEXT()81372     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() VULKAN_HPP_NOEXCEPT
81373       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
81374     {}
81375 
DebugReportCallbackEXT(std::nullptr_t)81376     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81377       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
81378     {}
81379 
DebugReportCallbackEXT(VkDebugReportCallbackEXT debugReportCallbackEXT)81380     VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT
81381       : m_debugReportCallbackEXT( debugReportCallbackEXT )
81382     {}
81383 
81384 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugReportCallbackEXT debugReportCallbackEXT)81385     DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT) VULKAN_HPP_NOEXCEPT
81386     {
81387       m_debugReportCallbackEXT = debugReportCallbackEXT;
81388       return *this;
81389     }
81390 #endif
81391 
operator =(std::nullptr_t)81392     DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81393     {
81394       m_debugReportCallbackEXT = VK_NULL_HANDLE;
81395       return *this;
81396     }
81397 
81398 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81399     auto operator<=>( DebugReportCallbackEXT const& ) const = default;
81400 #else
operator ==(DebugReportCallbackEXT const & rhs) const81401     bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81402     {
81403       return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT;
81404     }
81405 
operator !=(DebugReportCallbackEXT const & rhs) const81406     bool operator!=(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81407     {
81408       return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT;
81409     }
81410 
operator <(DebugReportCallbackEXT const & rhs) const81411     bool operator<(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81412     {
81413       return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT;
81414     }
81415 #endif
81416 
operator VkDebugReportCallbackEXT() const81417     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT
81418     {
81419       return m_debugReportCallbackEXT;
81420     }
81421 
operator bool() const81422     explicit operator bool() const VULKAN_HPP_NOEXCEPT
81423     {
81424       return m_debugReportCallbackEXT != VK_NULL_HANDLE;
81425     }
81426 
operator !() const81427     bool operator!() const VULKAN_HPP_NOEXCEPT
81428     {
81429       return m_debugReportCallbackEXT == VK_NULL_HANDLE;
81430     }
81431 
81432   private:
81433     VkDebugReportCallbackEXT m_debugReportCallbackEXT;
81434   };
81435   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" );
81436 
81437   template <>
81438   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugReportCallbackEXT>
81439   {
81440     using type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
81441   };
81442 
81443   template <>
81444   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT>
81445   {
81446     using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
81447   };
81448 
81449 
81450   template <>
81451   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT>
81452   {
81453     using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
81454   };
81455 
81456 
81457   template <>
81458   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
81459   {
81460     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
81461   };
81462 
81463   class DebugUtilsMessengerEXT
81464   {
81465   public:
81466     using CType = VkDebugUtilsMessengerEXT;
81467 
81468     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT;
81469     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
81470 
81471   public:
DebugUtilsMessengerEXT()81472     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() VULKAN_HPP_NOEXCEPT
81473       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
81474     {}
81475 
DebugUtilsMessengerEXT(std::nullptr_t)81476     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81477       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
81478     {}
81479 
DebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)81480     VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT
81481       : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT )
81482     {}
81483 
81484 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)81485     DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT) VULKAN_HPP_NOEXCEPT
81486     {
81487       m_debugUtilsMessengerEXT = debugUtilsMessengerEXT;
81488       return *this;
81489     }
81490 #endif
81491 
operator =(std::nullptr_t)81492     DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81493     {
81494       m_debugUtilsMessengerEXT = VK_NULL_HANDLE;
81495       return *this;
81496     }
81497 
81498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81499     auto operator<=>( DebugUtilsMessengerEXT const& ) const = default;
81500 #else
operator ==(DebugUtilsMessengerEXT const & rhs) const81501     bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81502     {
81503       return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT;
81504     }
81505 
operator !=(DebugUtilsMessengerEXT const & rhs) const81506     bool operator!=(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81507     {
81508       return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT;
81509     }
81510 
operator <(DebugUtilsMessengerEXT const & rhs) const81511     bool operator<(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81512     {
81513       return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT;
81514     }
81515 #endif
81516 
operator VkDebugUtilsMessengerEXT() const81517     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT
81518     {
81519       return m_debugUtilsMessengerEXT;
81520     }
81521 
operator bool() const81522     explicit operator bool() const VULKAN_HPP_NOEXCEPT
81523     {
81524       return m_debugUtilsMessengerEXT != VK_NULL_HANDLE;
81525     }
81526 
operator !() const81527     bool operator!() const VULKAN_HPP_NOEXCEPT
81528     {
81529       return m_debugUtilsMessengerEXT == VK_NULL_HANDLE;
81530     }
81531 
81532   private:
81533     VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT;
81534   };
81535   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" );
81536 
81537   template <>
81538   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugUtilsMessengerEXT>
81539   {
81540     using type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
81541   };
81542 
81543   template <>
81544   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT>
81545   {
81546     using Type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
81547   };
81548 
81549 
81550 
81551   template <>
81552   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
81553   {
81554     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
81555   };
81556 
81557 #ifndef VULKAN_HPP_NO_SMART_HANDLE
81558   class Instance;
81559   template <typename Dispatch> class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
81560   using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
81561   template <typename Dispatch> class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
81562   using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
81563   template <typename Dispatch> class UniqueHandleTraits<SurfaceKHR, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
81564   using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
81565 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81566 
81567   class Instance
81568   {
81569   public:
81570     using CType = VkInstance;
81571 
81572     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance;
81573     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
81574 
81575   public:
Instance()81576     VULKAN_HPP_CONSTEXPR Instance() VULKAN_HPP_NOEXCEPT
81577       : m_instance(VK_NULL_HANDLE)
81578     {}
81579 
Instance(std::nullptr_t)81580     VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81581       : m_instance(VK_NULL_HANDLE)
81582     {}
81583 
Instance(VkInstance instance)81584     VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT
81585       : m_instance( instance )
81586     {}
81587 
81588 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkInstance instance)81589     Instance & operator=(VkInstance instance) VULKAN_HPP_NOEXCEPT
81590     {
81591       m_instance = instance;
81592       return *this;
81593     }
81594 #endif
81595 
operator =(std::nullptr_t)81596     Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81597     {
81598       m_instance = VK_NULL_HANDLE;
81599       return *this;
81600     }
81601 
81602 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81603     auto operator<=>( Instance const& ) const = default;
81604 #else
operator ==(Instance const & rhs) const81605     bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
81606     {
81607       return m_instance == rhs.m_instance;
81608     }
81609 
operator !=(Instance const & rhs) const81610     bool operator!=(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
81611     {
81612       return m_instance != rhs.m_instance;
81613     }
81614 
operator <(Instance const & rhs) const81615     bool operator<(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
81616     {
81617       return m_instance < rhs.m_instance;
81618     }
81619 #endif
81620 
81621 
81622 #ifdef VK_USE_PLATFORM_ANDROID_KHR
81623     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81624     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;
81625 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81626     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81627     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;
81628 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81629   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81630   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81631 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81632 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81633 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
81634 
81635 
81636     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81637     VULKAN_HPP_NODISCARD Result createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81638 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81639     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81640     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;
81641 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81642   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81643   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81644 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81645 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81646 
81647 
81648     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81649     VULKAN_HPP_NODISCARD Result createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81650 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81651     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81652     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;
81653 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81654   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81655   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81656 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81657 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81658 
81659 
81660 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
81661     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81662     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;
81663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81664     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81665     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;
81666 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81667   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81668   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81669 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81670 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81671 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
81672 
81673 
81674     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81675     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;
81676 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81677     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81678     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;
81679 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81680   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81681   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81682 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81683 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81684 
81685 
81686     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81687     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;
81688 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81689     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81690     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;
81691 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81692   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81693   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81694 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81695 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81696 
81697 
81698 #ifdef VK_USE_PLATFORM_IOS_MVK
81699     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81700     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;
81701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81702     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81703     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;
81704 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81705   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81706   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81707 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81709 #endif /*VK_USE_PLATFORM_IOS_MVK*/
81710 
81711 
81712 #ifdef VK_USE_PLATFORM_FUCHSIA
81713     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81714     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;
81715 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81716     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81717     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;
81718 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81719   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81720   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81721 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81722 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81723 #endif /*VK_USE_PLATFORM_FUCHSIA*/
81724 
81725 
81726 #ifdef VK_USE_PLATFORM_MACOS_MVK
81727     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81728     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;
81729 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81730     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81731     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;
81732 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81733   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81734   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81735 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81736 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81737 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
81738 
81739 
81740 #ifdef VK_USE_PLATFORM_METAL_EXT
81741     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81742     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;
81743 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81744     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81745     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;
81746 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81747   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81748   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81749 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81750 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81751 #endif /*VK_USE_PLATFORM_METAL_EXT*/
81752 
81753 
81754 #ifdef VK_USE_PLATFORM_SCREEN_QNX
81755     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81756     VULKAN_HPP_NODISCARD Result createScreenSurfaceQNX( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81757 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81758     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81759     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createScreenSurfaceQNX( const ScreenSurfaceCreateInfoQNX & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81760 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81761   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81762   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createScreenSurfaceQNXUnique( const ScreenSurfaceCreateInfoQNX & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81763 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81765 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
81766 
81767 
81768 #ifdef VK_USE_PLATFORM_GGP
81769     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81770     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;
81771 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81772     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81773     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;
81774 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81775   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81776   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81777 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81778 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81779 #endif /*VK_USE_PLATFORM_GGP*/
81780 
81781 
81782 #ifdef VK_USE_PLATFORM_VI_NN
81783     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81784     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;
81785 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81786     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81787     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;
81788 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81789   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81790   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81791 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81792 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81793 #endif /*VK_USE_PLATFORM_VI_NN*/
81794 
81795 
81796 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
81797     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81798     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;
81799 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81800     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81801     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;
81802 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81803   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81804   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81805 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81806 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81807 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
81808 
81809 
81810 #ifdef VK_USE_PLATFORM_WIN32_KHR
81811     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81812     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;
81813 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81815     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;
81816 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81817   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81818   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81819 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81820 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81821 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
81822 
81823 
81824 #ifdef VK_USE_PLATFORM_XCB_KHR
81825     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81826     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;
81827 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81828     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81829     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;
81830 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81831   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81832   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81833 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81834 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81835 #endif /*VK_USE_PLATFORM_XCB_KHR*/
81836 
81837 
81838 #ifdef VK_USE_PLATFORM_XLIB_KHR
81839     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81840     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;
81841 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81842     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81843     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;
81844 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81845   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81846   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81847 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81848 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81849 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
81850 
81851 
81852     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81853     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;
81854 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81855     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81856     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;
81857 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81858 
81859 
81860     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81861     void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81862 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81863     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81864     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;
81865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81866 
81867 
81868     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81869     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81870 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81871     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81872     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81873 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81874 
81875 
81876     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81877     void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81878 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81879     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81880     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;
81881 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81882 
81883 
81884     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81885     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81886 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81887     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81888     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81889 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81890 
81891 
81892     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81893     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81894 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81895     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81896     void destroy( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81897 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81898 
81899 
81900     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81901     void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81902 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81903     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81904     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;
81905 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81906 
81907 
81908     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81909     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81910 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81911     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81912     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81913 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81914 
81915 
81916     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81917     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;
81918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81919     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81920     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type enumeratePhysicalDeviceGroups( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81921     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceGroupPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
81922     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81923 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81924 
81925     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81926     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;
81927 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81928     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81929     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type enumeratePhysicalDeviceGroupsKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81930     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceGroupPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
81931     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81933 
81934 
81935     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81936     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;
81937 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81938     template <typename PhysicalDeviceAllocator = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81939     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type enumeratePhysicalDevices( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81940     template <typename PhysicalDeviceAllocator = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDevice>::value, int>::type = 0>
81941     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81942 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81943 
81944 
81945     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81946     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81947 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81948     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81949     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81950 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81951 
81952 
81953     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81954     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;
81955 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81956     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81957     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;
81958 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81959 
operator VkInstance() const81960     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT
81961     {
81962       return m_instance;
81963     }
81964 
operator bool() const81965     explicit operator bool() const VULKAN_HPP_NOEXCEPT
81966     {
81967       return m_instance != VK_NULL_HANDLE;
81968     }
81969 
operator !() const81970     bool operator!() const VULKAN_HPP_NOEXCEPT
81971     {
81972       return m_instance == VK_NULL_HANDLE;
81973     }
81974 
81975   private:
81976     VkInstance m_instance;
81977   };
81978   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" );
81979 
81980   template <>
81981   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eInstance>
81982   {
81983     using type = VULKAN_HPP_NAMESPACE::Instance;
81984   };
81985 
81986   template <>
81987   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eInstance>
81988   {
81989     using Type = VULKAN_HPP_NAMESPACE::Instance;
81990   };
81991 
81992 
81993   template <>
81994   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance>
81995   {
81996     using Type = VULKAN_HPP_NAMESPACE::Instance;
81997   };
81998 
81999 
82000   template <>
82001   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Instance>
82002   {
82003     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
82004   };
82005 
82006 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82007   template <typename Dispatch> class UniqueHandleTraits<Instance, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
82008   using UniqueInstance = UniqueHandle<Instance, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
82009 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82010 
82011 
82012     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82013     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;
82014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82015     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82016     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 );
82017 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
82018   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82019   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Instance, Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
82020 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82021 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82022 
82023 
82024     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82025     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;
82026 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82027     template <typename ExtensionPropertiesAllocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82028     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
82029     template <typename ExtensionPropertiesAllocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ExtensionPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type = 0>
82030     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
82031 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82032 
82033 
82034     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82035     VULKAN_HPP_NODISCARD Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT;
82036 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82037     template <typename LayerPropertiesAllocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82038     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateInstanceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
82039     template <typename LayerPropertiesAllocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = LayerPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type = 0>
82040     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
82041 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82042 
82043 
82044     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82045     VULKAN_HPP_NODISCARD Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT;
82046 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82047     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
82048     typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
82049 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82050 
82051 
82052   template <typename Dispatch>
createInstance(const VULKAN_HPP_NAMESPACE::InstanceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Instance * pInstance,Dispatch const & d)82053   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
82054   {
82055     return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkInstance *>( pInstance ) ) );
82056   }
82057 
82058 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82059   template <typename Dispatch>
createInstance(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)82060   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 )
82061   {
82062     VULKAN_HPP_NAMESPACE::Instance instance;
82063     Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance *>( &instance ) ) );
82064     return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstance" );
82065   }
82066 
82067 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
82068   template <typename Dispatch>
createInstanceUnique(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)82069   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Instance, Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d )
82070   {
82071     VULKAN_HPP_NAMESPACE::Instance instance;
82072     Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance *>( &instance ) ) );
82073     ObjectDestroy<NoParent, Dispatch> deleter( allocator, d );
82074     return createResultValue<VULKAN_HPP_NAMESPACE::Instance, Dispatch>( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique", deleter );
82075   }
82076 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82078 
82079 
82080   template <typename Dispatch>
enumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d)82081   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
82082   {
82083     return static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast< VkExtensionProperties *>( pProperties ) ) );
82084   }
82085 
82086 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82087   template <typename ExtensionPropertiesAllocator, typename Dispatch>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d)82088   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const & d )
82089   {
82090     std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties;
82091     uint32_t propertyCount;
82092     Result result;
82093     do
82094     {
82095       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
82096       if ( ( result == Result::eSuccess ) && propertyCount )
82097       {
82098         properties.resize( propertyCount );
82099         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
82100         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
82101       }
82102     } while ( result == Result::eIncomplete );
82103     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
82104     {
82105       properties.resize( propertyCount );
82106     }
82107     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
82108   }
82109 
82110   template <typename ExtensionPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type >
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,ExtensionPropertiesAllocator & extensionPropertiesAllocator,Dispatch const & d)82111   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d )
82112   {
82113     std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
82114     uint32_t propertyCount;
82115     Result result;
82116     do
82117     {
82118       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
82119       if ( ( result == Result::eSuccess ) && propertyCount )
82120       {
82121         properties.resize( propertyCount );
82122         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
82123         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
82124       }
82125     } while ( result == Result::eIncomplete );
82126     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
82127     {
82128       properties.resize( propertyCount );
82129     }
82130     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
82131   }
82132 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82133 
82134 
82135   template <typename Dispatch>
enumerateInstanceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d)82136   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d  ) VULKAN_HPP_NOEXCEPT
82137   {
82138     return static_cast<Result>( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast< VkLayerProperties *>( pProperties ) ) );
82139   }
82140 
82141 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82142   template <typename LayerPropertiesAllocator, typename Dispatch>
enumerateInstanceLayerProperties(Dispatch const & d)82143   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateInstanceLayerProperties( Dispatch const & d )
82144   {
82145     std::vector<LayerProperties, LayerPropertiesAllocator> properties;
82146     uint32_t propertyCount;
82147     Result result;
82148     do
82149     {
82150       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
82151       if ( ( result == Result::eSuccess ) && propertyCount )
82152       {
82153         properties.resize( propertyCount );
82154         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
82155         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
82156       }
82157     } while ( result == Result::eIncomplete );
82158     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
82159     {
82160       properties.resize( propertyCount );
82161     }
82162     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
82163   }
82164 
82165   template <typename LayerPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type >
enumerateInstanceLayerProperties(LayerPropertiesAllocator & layerPropertiesAllocator,Dispatch const & d)82166   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d )
82167   {
82168     std::vector<LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
82169     uint32_t propertyCount;
82170     Result result;
82171     do
82172     {
82173       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
82174       if ( ( result == Result::eSuccess ) && propertyCount )
82175       {
82176         properties.resize( propertyCount );
82177         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
82178         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
82179       }
82180     } while ( result == Result::eIncomplete );
82181     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
82182     {
82183       properties.resize( propertyCount );
82184     }
82185     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
82186   }
82187 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82188 
82189 
82190   template <typename Dispatch>
enumerateInstanceVersion(uint32_t * pApiVersion,Dispatch const & d)82191   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d  ) VULKAN_HPP_NOEXCEPT
82192   {
82193     return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
82194   }
82195 
82196 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82197   template <typename Dispatch>
enumerateInstanceVersion(Dispatch const & d)82198   VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d )
82199   {
82200     uint32_t apiVersion;
82201     Result result = static_cast<Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
82202     return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" );
82203   }
82204 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82205 
82206 
82207   template <typename Dispatch>
begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo,Dispatch const & d) const82208   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82209   {
82210     return static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( pBeginInfo ) ) );
82211   }
82212 
82213 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82214   template <typename Dispatch>
begin(const CommandBufferBeginInfo & beginInfo,Dispatch const & d) const82215   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const
82216   {
82217     Result result = static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) );
82218     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
82219   }
82220 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82221 
82222 
82223   template <typename Dispatch>
beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,Dispatch const & d) const82224   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82225   {
82226     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( pConditionalRenderingBegin ) );
82227   }
82228 
82229 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82230   template <typename Dispatch>
beginConditionalRenderingEXT(const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,Dispatch const & d) const82231   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82232   {
82233     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) );
82234   }
82235 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82236 
82237 
82238   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const82239   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82240   {
82241     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
82242   }
82243 
82244 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82245   template <typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const82246   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82247   {
82248     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
82249   }
82250 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82251 
82252 
82253   template <typename Dispatch>
beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,Dispatch const & d) const82254   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
82255   {
82256     d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
82257   }
82258 
82259 
82260   template <typename Dispatch>
beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index,Dispatch const & d) const82261   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
82262   {
82263     d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
82264   }
82265 
82266 
82267   template <typename Dispatch>
beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const82268   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82269   {
82270     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), static_cast<VkSubpassContents>( contents ) );
82271   }
82272 
82273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82274   template <typename Dispatch>
beginRenderPass(const RenderPassBeginInfo & renderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const82275   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82276   {
82277     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), static_cast<VkSubpassContents>( contents ) );
82278   }
82279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82280 
82281 
82282   template <typename Dispatch>
beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const82283   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
82284   {
82285     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
82286   }
82287 
82288 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82289   template <typename Dispatch>
beginRenderPass2(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const82290   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82291   {
82292     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
82293   }
82294 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82295 
82296   template <typename Dispatch>
beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const82297   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
82298   {
82299     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
82300   }
82301 
82302 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82303   template <typename Dispatch>
beginRenderPass2KHR(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const82304   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82305   {
82306     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
82307   }
82308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82309 
82310 
82311   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) const82312   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
82313   {
82314     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer *>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
82315   }
82316 
82317 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82318   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) const82319   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
82320   {
82321 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82322     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
82323 #else
82324     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
82325   {
82326     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
82327   }
82328 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82329 
82330     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
82331   }
82332 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82333 
82334 
82335   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) const82336   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
82337   {
82338     d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
82339   }
82340 
82341 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82342   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) const82343   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
82344   {
82345     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() );
82346   }
82347 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82348 
82349 
82350   template <typename Dispatch>
bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const82351   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
82352   {
82353     d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
82354   }
82355 
82356 
82357   template <typename Dispatch>
bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,Dispatch const & d) const82358   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82359   {
82360     d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
82361   }
82362 
82363 
82364   template <typename Dispatch>
bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex,Dispatch const & d) const82365   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
82366   {
82367     d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ), groupIndex );
82368   }
82369 
82370 
82371   template <typename Dispatch>
bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,Dispatch const & d) const82372   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82373   {
82374     d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
82375   }
82376 
82377 
82378   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) const82379   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
82380   {
82381     d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ), reinterpret_cast<const VkDeviceSize *>( pSizes ) );
82382   }
82383 
82384 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82385   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) const82386   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
82387   {
82388 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82389     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
82390     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
82391 #else
82392     if ( buffers.size() != offsets.size() )
82393   {
82394     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
82395   }
82396     if ( !sizes.empty() && buffers.size() != sizes.size() )
82397   {
82398     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
82399   }
82400 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82401 
82402     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() ) );
82403   }
82404 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82405 
82406 
82407   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) const82408   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
82409   {
82410     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ) );
82411   }
82412 
82413 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82414   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) const82415   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
82416   {
82417 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82418     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
82419 #else
82420     if ( buffers.size() != offsets.size() )
82421   {
82422     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
82423   }
82424 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82425 
82426     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast<const VkBuffer *>( buffers.data() ), reinterpret_cast<const VkDeviceSize *>( offsets.data() ) );
82427   }
82428 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82429 
82430 
82431   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) const82432   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
82433   {
82434     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 ) );
82435   }
82436 
82437 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82438   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) const82439   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
82440   {
82441 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82442     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
82443     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
82444     VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
82445 #else
82446     if ( buffers.size() != offsets.size() )
82447   {
82448     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" );
82449   }
82450     if ( !sizes.empty() && buffers.size() != sizes.size() )
82451   {
82452     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" );
82453   }
82454     if ( !strides.empty() && buffers.size() != strides.size() )
82455   {
82456     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" );
82457   }
82458 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82459 
82460     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() ) );
82461   }
82462 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82463 
82464 
82465   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) const82466   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
82467   {
82468     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 ) );
82469   }
82470 
82471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82472   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) const82473   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
82474   {
82475     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 ) );
82476   }
82477 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82478 
82479 
82480   template <typename Dispatch>
blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR * pBlitImageInfo,Dispatch const & d) const82481   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82482   {
82483     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( pBlitImageInfo ) );
82484   }
82485 
82486 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82487   template <typename Dispatch>
blitImage2KHR(const BlitImageInfo2KHR & blitImageInfo,Dispatch const & d) const82488   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82489   {
82490     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( &blitImageInfo ) );
82491   }
82492 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82493 
82494 
82495   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::AccelerationStructureNV dst,VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,VULKAN_HPP_NAMESPACE::Buffer scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,Dispatch const & d) const82496   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::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82497   {
82498     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV *>( pInfo ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
82499   }
82500 
82501 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82502   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::AccelerationStructureNV dst,VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,VULKAN_HPP_NAMESPACE::Buffer scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,Dispatch const & d) const82503   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::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82504   {
82505     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV *>( &info ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
82506   }
82507 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82508 
82509 
82510   template <typename Dispatch>
buildAccelerationStructuresIndirectKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::DeviceAddress * pIndirectDeviceAddresses,const uint32_t * pIndirectStrides,const uint32_t * const * ppMaxPrimitiveCounts,Dispatch const & d) const82511   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::DeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82512   {
82513     d.vkCmdBuildAccelerationStructuresIndirectKHR( m_commandBuffer, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ), reinterpret_cast<const VkDeviceAddress *>( pIndirectDeviceAddresses ), pIndirectStrides, ppMaxPrimitiveCounts );
82514   }
82515 
82516 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82517   template <typename Dispatch>
buildAccelerationStructuresIndirectKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses,ArrayProxy<const uint32_t> const & indirectStrides,ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts,Dispatch const & d) const82518   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses, ArrayProxy<const uint32_t> const & indirectStrides, ArrayProxy<const uint32_t* const > const & pMaxPrimitiveCounts, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
82519   {
82520 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82521     VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() );
82522     VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() );
82523     VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() );
82524 #else
82525     if ( infos.size() != indirectDeviceAddresses.size() )
82526   {
82527     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectDeviceAddresses.size()" );
82528   }
82529     if ( infos.size() != indirectStrides.size() )
82530   {
82531     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectStrides.size()" );
82532   }
82533     if ( infos.size() != pMaxPrimitiveCounts.size() )
82534   {
82535     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()" );
82536   }
82537 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82538 
82539     d.vkCmdBuildAccelerationStructuresIndirectKHR( m_commandBuffer, infos.size(), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), reinterpret_cast<const VkDeviceAddress *>( indirectDeviceAddresses.data() ), indirectStrides.data(), pMaxPrimitiveCounts.data() );
82540   }
82541 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82542 
82543 
82544   template <typename Dispatch>
buildAccelerationStructuresKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos,Dispatch const & d) const82545   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82546   {
82547     d.vkCmdBuildAccelerationStructuresKHR( m_commandBuffer, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( ppBuildRangeInfos ) );
82548   }
82549 
82550 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82551   template <typename Dispatch>
buildAccelerationStructuresKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos,Dispatch const & d) const82552   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const > const & pBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
82553   {
82554 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82555     VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() );
82556 #else
82557     if ( infos.size() != pBuildRangeInfos.size() )
82558   {
82559     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" );
82560   }
82561 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82562 
82563     d.vkCmdBuildAccelerationStructuresKHR( m_commandBuffer, infos.size(), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) );
82564   }
82565 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82566 
82567 
82568   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) const82569   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
82570   {
82571     d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast<const VkClearAttachment *>( pAttachments ), rectCount, reinterpret_cast<const VkClearRect *>( pRects ) );
82572   }
82573 
82574 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82575   template <typename Dispatch>
clearAttachments(ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects,Dispatch const & d) const82576   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
82577   {
82578     d.vkCmdClearAttachments( m_commandBuffer, attachments.size(), reinterpret_cast<const VkClearAttachment *>( attachments.data() ), rects.size(), reinterpret_cast<const VkClearRect *>( rects.data() ) );
82579   }
82580 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82581 
82582 
82583   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) const82584   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
82585   {
82586     d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue *>( pColor ), rangeCount, reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
82587   }
82588 
82589 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82590   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) const82591   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
82592   {
82593     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() ) );
82594   }
82595 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82596 
82597 
82598   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) const82599   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
82600   {
82601     d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue *>( pDepthStencil ), rangeCount, reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
82602   }
82603 
82604 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82605   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) const82606   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
82607   {
82608     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() ) );
82609   }
82610 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82611 
82612 
82613   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const82614   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82615   {
82616     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) );
82617   }
82618 
82619 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82620   template <typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const82621   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82622   {
82623     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
82624   }
82625 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82626 
82627 
82628   template <typename Dispatch>
copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst,VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,Dispatch const & d) const82629   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82630   {
82631     d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkCopyAccelerationStructureModeKHR>( mode ) );
82632   }
82633 
82634 
82635   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const82636   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82637   {
82638     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) );
82639   }
82640 
82641 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82642   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const82643   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82644   {
82645     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
82646   }
82647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82648 
82649 
82650   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) const82651   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
82652   {
82653     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferCopy *>( pRegions ) );
82654   }
82655 
82656 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82657   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) const82658   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
82659   {
82660     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regions.size(), reinterpret_cast<const VkBufferCopy *>( regions.data() ) );
82661   }
82662 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82663 
82664 
82665   template <typename Dispatch>
copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR * pCopyBufferInfo,Dispatch const & d) const82666   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82667   {
82668     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( pCopyBufferInfo ) );
82669   }
82670 
82671 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82672   template <typename Dispatch>
copyBuffer2KHR(const CopyBufferInfo2KHR & copyBufferInfo,Dispatch const & d) const82673   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82674   {
82675     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( &copyBufferInfo ) );
82676   }
82677 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82678 
82679 
82680   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) const82681   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
82682   {
82683     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
82684   }
82685 
82686 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82687   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) const82688   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
82689   {
82690     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size(), reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
82691   }
82692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82693 
82694 
82695   template <typename Dispatch>
copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR * pCopyBufferToImageInfo,Dispatch const & d) const82696   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82697   {
82698     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( pCopyBufferToImageInfo ) );
82699   }
82700 
82701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82702   template <typename Dispatch>
copyBufferToImage2KHR(const CopyBufferToImageInfo2KHR & copyBufferToImageInfo,Dispatch const & d) const82703   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82704   {
82705     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( &copyBufferToImageInfo ) );
82706   }
82707 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82708 
82709 
82710   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) const82711   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
82712   {
82713     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 ) );
82714   }
82715 
82716 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82717   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) const82718   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
82719   {
82720     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() ) );
82721   }
82722 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82723 
82724 
82725   template <typename Dispatch>
copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR * pCopyImageInfo,Dispatch const & d) const82726   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82727   {
82728     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( pCopyImageInfo ) );
82729   }
82730 
82731 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82732   template <typename Dispatch>
copyImage2KHR(const CopyImageInfo2KHR & copyImageInfo,Dispatch const & d) const82733   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82734   {
82735     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( &copyImageInfo ) );
82736   }
82737 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82738 
82739 
82740   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) const82741   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
82742   {
82743     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
82744   }
82745 
82746 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82747   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) const82748   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
82749   {
82750     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regions.size(), reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
82751   }
82752 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82753 
82754 
82755   template <typename Dispatch>
copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR * pCopyImageToBufferInfo,Dispatch const & d) const82756   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82757   {
82758     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( pCopyImageToBufferInfo ) );
82759   }
82760 
82761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82762   template <typename Dispatch>
copyImageToBuffer2KHR(const CopyImageToBufferInfo2KHR & copyImageToBufferInfo,Dispatch const & d) const82763   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82764   {
82765     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( &copyImageToBufferInfo ) );
82766   }
82767 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82768 
82769 
82770   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const82771   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82772   {
82773     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) );
82774   }
82775 
82776 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82777   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const82778   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82779   {
82780     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
82781   }
82782 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82783 
82784 
82785   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) const82786   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
82787   {
82788     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 ) );
82789   }
82790 
82791 
82792   template <typename Dispatch>
debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const82793   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82794   {
82795     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
82796   }
82797 
82798 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82799   template <typename Dispatch>
debugMarkerBeginEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const82800   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82801   {
82802     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
82803   }
82804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82805 
82806 
82807   template <typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const82808   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82809   {
82810     d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
82811   }
82812 
82813 
82814   template <typename Dispatch>
debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const82815   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82816   {
82817     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
82818   }
82819 
82820 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82821   template <typename Dispatch>
debugMarkerInsertEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const82822   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82823   {
82824     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
82825   }
82826 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82827 
82828 
82829   template <typename Dispatch>
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const82830   VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82831   {
82832     d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
82833   }
82834 
82835 
82836   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) const82837   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
82838   {
82839     d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
82840   }
82841 
82842   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) const82843   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
82844   {
82845     d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
82846   }
82847 
82848 
82849   template <typename Dispatch>
dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const82850   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82851   {
82852     d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
82853   }
82854 
82855 
82856   template <typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const82857   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
82858   {
82859     d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
82860   }
82861 
82862 
82863   template <typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const82864   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
82865   {
82866     d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
82867   }
82868 
82869 
82870   template <typename Dispatch>
drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82871   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
82872   {
82873     d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82874   }
82875 
82876 
82877   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) const82878   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
82879   {
82880     d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82881   }
82882 
82883   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) const82884   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
82885   {
82886     d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82887   }
82888 
82889   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) const82890   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
82891   {
82892     d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82893   }
82894 
82895 
82896   template <typename Dispatch>
drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82897   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
82898   {
82899     d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82900   }
82901 
82902 
82903   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) const82904   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
82905   {
82906     d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
82907   }
82908 
82909 
82910   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) const82911   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
82912   {
82913     d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82914   }
82915 
82916   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) const82917   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
82918   {
82919     d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82920   }
82921 
82922   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) const82923   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
82924   {
82925     d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82926   }
82927 
82928 
82929   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) const82930   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
82931   {
82932     d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82933   }
82934 
82935 
82936   template <typename Dispatch>
drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82937   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
82938   {
82939     d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82940   }
82941 
82942 
82943   template <typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const82944   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82945   {
82946     d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
82947   }
82948 
82949 
82950   template <typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const82951   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82952   {
82953     d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
82954   }
82955 
82956 
82957   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const82958   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82959   {
82960     d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
82961   }
82962 
82963 
82964   template <typename Dispatch>
endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const82965   VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82966   {
82967     d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
82968   }
82969 
82970 
82971   template <typename Dispatch>
endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const82972   VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82973   {
82974     d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
82975   }
82976 
82977 
82978   template <typename Dispatch>
endRenderPass(Dispatch const & d) const82979   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82980   {
82981     d.vkCmdEndRenderPass( m_commandBuffer );
82982   }
82983 
82984 
82985   template <typename Dispatch>
endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82986   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82987   {
82988     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82989   }
82990 
82991 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82992   template <typename Dispatch>
endRenderPass2(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82993   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82994   {
82995     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82996   }
82997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82998 
82999   template <typename Dispatch>
endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const83000   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83001   {
83002     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
83003   }
83004 
83005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83006   template <typename Dispatch>
endRenderPass2KHR(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const83007   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83008   {
83009     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
83010   }
83011 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83012 
83013 
83014   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) const83015   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
83016   {
83017     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer *>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
83018   }
83019 
83020 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83021   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) const83022   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
83023   {
83024 #ifdef VULKAN_HPP_NO_EXCEPTIONS
83025     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
83026 #else
83027     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
83028   {
83029     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
83030   }
83031 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
83032 
83033     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
83034   }
83035 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83036 
83037 
83038   template <typename Dispatch>
executeCommands(uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const83039   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83040   {
83041     d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
83042   }
83043 
83044 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83045   template <typename Dispatch>
executeCommands(ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const83046   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83047   {
83048     d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
83049   }
83050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83051 
83052 
83053   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const83054   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83055   {
83056     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
83057   }
83058 
83059 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83060   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const83061   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83062   {
83063     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
83064   }
83065 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83066 
83067 
83068   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) const83069   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
83070   {
83071     d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
83072   }
83073 
83074 
83075   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const83076   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83077   {
83078     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
83079   }
83080 
83081 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83082   template <typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const83083   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83084   {
83085     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
83086   }
83087 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83088 
83089 
83090   template <typename Dispatch>
nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const83091   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83092   {
83093     d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
83094   }
83095 
83096 
83097   template <typename Dispatch>
nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const83098   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
83099   {
83100     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
83101   }
83102 
83103 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83104   template <typename Dispatch>
nextSubpass2(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const83105   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83106   {
83107     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
83108   }
83109 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83110 
83111   template <typename Dispatch>
nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const83112   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
83113   {
83114     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
83115   }
83116 
83117 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83118   template <typename Dispatch>
nextSubpass2KHR(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const83119   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83120   {
83121     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
83122   }
83123 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83124 
83125 
83126   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) const83127   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
83128   {
83129     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 ) );
83130   }
83131 
83132 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83133   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) const83134   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
83135   {
83136     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() ) );
83137   }
83138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83139 
83140 
83141   template <typename Dispatch>
pipelineBarrier2KHR(const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfo,Dispatch const & d) const83142   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83143   {
83144     d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast<const VkDependencyInfoKHR *>( pDependencyInfo ) );
83145   }
83146 
83147 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83148   template <typename Dispatch>
pipelineBarrier2KHR(const DependencyInfoKHR & dependencyInfo,Dispatch const & d) const83149   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83150   {
83151     d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast<const VkDependencyInfoKHR *>( &dependencyInfo ) );
83152   }
83153 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83154 
83155 
83156   template <typename Dispatch>
preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const83157   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83158   {
83159     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
83160   }
83161 
83162 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83163   template <typename Dispatch>
preprocessGeneratedCommandsNV(const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const83164   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83165   {
83166     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
83167   }
83168 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83169 
83170 
83171   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) const83172   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
83173   {
83174     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, size, pValues );
83175   }
83176 
83177 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83178   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) const83179   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
83180   {
83181     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, values.size() * sizeof( T ), reinterpret_cast<const void *>( values.data() ) );
83182   }
83183 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83184 
83185 
83186   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) const83187   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
83188   {
83189     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ) );
83190   }
83191 
83192 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83193   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) const83194   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
83195   {
83196     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWrites.size(), reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ) );
83197   }
83198 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83199 
83200 
83201   template <typename Dispatch>
pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const83202   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
83203   {
83204     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
83205   }
83206 
83207 
83208   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const83209   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83210   {
83211     d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
83212   }
83213 
83214 
83215   template <typename Dispatch>
resetEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask,Dispatch const & d) const83216   VULKAN_HPP_INLINE void CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83217   {
83218     d.vkCmdResetEvent2KHR( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2KHR>( stageMask ) );
83219   }
83220 
83221 
83222   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const83223   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83224   {
83225     d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
83226   }
83227 
83228 
83229   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) const83230   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
83231   {
83232     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 ) );
83233   }
83234 
83235 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83236   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) const83237   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
83238   {
83239     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() ) );
83240   }
83241 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83242 
83243 
83244   template <typename Dispatch>
resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR * pResolveImageInfo,Dispatch const & d) const83245   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83246   {
83247     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( pResolveImageInfo ) );
83248   }
83249 
83250 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83251   template <typename Dispatch>
resolveImage2KHR(const ResolveImageInfo2KHR & resolveImageInfo,Dispatch const & d) const83252   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83253   {
83254     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( &resolveImageInfo ) );
83255   }
83256 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83257 
83258 
83259   template <typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const83260   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83261   {
83262     d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
83263   }
83264 
83265 
83266   template <typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const83267   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83268   {
83269     d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
83270   }
83271 
83272 
83273   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders,Dispatch const & d) const83274   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
83275   {
83276     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrderCount, reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( pCustomSampleOrders ) );
83277   }
83278 
83279 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83280   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders,Dispatch const & d) const83281   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
83282   {
83283     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrders.size(), reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( customSampleOrders.data() ) );
83284   }
83285 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83286 
83287 
83288   template <typename Dispatch>
setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode,Dispatch const & d) const83289   VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83290   {
83291     d.vkCmdSetCullModeEXT( m_commandBuffer, static_cast<VkCullModeFlags>( cullMode ) );
83292   }
83293 
83294 
83295   template <typename Dispatch>
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const83296   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83297   {
83298     d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
83299   }
83300 
83301 
83302   template <typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const83303   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83304   {
83305     d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
83306   }
83307 
83308 
83309   template <typename Dispatch>
setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,Dispatch const & d) const83310   VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83311   {
83312     d.vkCmdSetDepthBoundsTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthBoundsTestEnable ) );
83313   }
83314 
83315 
83316   template <typename Dispatch>
setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp,Dispatch const & d) const83317   VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83318   {
83319     d.vkCmdSetDepthCompareOpEXT( m_commandBuffer, static_cast<VkCompareOp>( depthCompareOp ) );
83320   }
83321 
83322 
83323   template <typename Dispatch>
setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable,Dispatch const & d) const83324   VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83325   {
83326     d.vkCmdSetDepthTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthTestEnable ) );
83327   }
83328 
83329 
83330   template <typename Dispatch>
setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable,Dispatch const & d) const83331   VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83332   {
83333     d.vkCmdSetDepthWriteEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthWriteEnable ) );
83334   }
83335 
83336 
83337   template <typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const83338   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83339   {
83340     d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
83341   }
83342 
83343   template <typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const83344   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83345   {
83346     d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
83347   }
83348 
83349 
83350   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles,Dispatch const & d) const83351   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
83352   {
83353     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast<const VkRect2D *>( pDiscardRectangles ) );
83354   }
83355 
83356 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83357   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles,Dispatch const & d) const83358   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83359   {
83360     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size(), reinterpret_cast<const VkRect2D *>( discardRectangles.data() ) );
83361   }
83362 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83363 
83364 
83365   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const83366   VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83367   {
83368     d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
83369   }
83370 
83371 
83372   template <typename Dispatch>
setEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfo,Dispatch const & d) const83373   VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83374   {
83375     d.vkCmdSetEvent2KHR( m_commandBuffer, static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfoKHR *>( pDependencyInfo ) );
83376   }
83377 
83378 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83379   template <typename Dispatch>
setEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,const DependencyInfoKHR & dependencyInfo,Dispatch const & d) const83380   VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const DependencyInfoKHR & dependencyInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83381   {
83382     d.vkCmdSetEvent2KHR( m_commandBuffer, static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfoKHR *>( &dependencyInfo ) );
83383   }
83384 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83385 
83386 
83387   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,Dispatch const & d) const83388   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
83389   {
83390     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D *>( pExclusiveScissors ) );
83391   }
83392 
83393 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83394   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors,Dispatch const & d) const83395   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83396   {
83397     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size(), reinterpret_cast<const VkRect2D *>( exclusiveScissors.data() ) );
83398   }
83399 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83400 
83401 
83402   template <typename Dispatch>
setFragmentShadingRateEnumNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const83403   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83404   {
83405     d.vkCmdSetFragmentShadingRateEnumNV( m_commandBuffer, static_cast<VkFragmentShadingRateNV>( shadingRate ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR*>( combinerOps ) );
83406   }
83407 
83408 
83409   template <typename Dispatch>
setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D * pFragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const83410   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D* pFragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83411   {
83412     d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast<const VkExtent2D *>( pFragmentSize ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR*>( combinerOps ) );
83413   }
83414 
83415 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83416   template <typename Dispatch>
setFragmentShadingRateKHR(const Extent2D & fragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const83417   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83418   {
83419     d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast<const VkExtent2D *>( &fragmentSize ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) );
83420   }
83421 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83422 
83423 
83424   template <typename Dispatch>
setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace,Dispatch const & d) const83425   VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83426   {
83427     d.vkCmdSetFrontFaceEXT( m_commandBuffer, static_cast<VkFrontFace>( frontFace ) );
83428   }
83429 
83430 
83431   template <typename Dispatch>
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const83432   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83433   {
83434     d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
83435   }
83436 
83437 
83438   template <typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const83439   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83440   {
83441     d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
83442   }
83443 
83444 
83445   template <typename Dispatch>
setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const83446   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83447   {
83448     return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( pMarkerInfo ) ) );
83449   }
83450 
83451 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83452   template <typename Dispatch>
setPerformanceMarkerINTEL(const PerformanceMarkerInfoINTEL & markerInfo,Dispatch const & d) const83453   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
83454   {
83455     Result result = static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) );
83456     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
83457   }
83458 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83459 
83460 
83461   template <typename Dispatch>
setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo,Dispatch const & d) const83462   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83463   {
83464     return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( pOverrideInfo ) ) );
83465   }
83466 
83467 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83468   template <typename Dispatch>
setPerformanceOverrideINTEL(const PerformanceOverrideInfoINTEL & overrideInfo,Dispatch const & d) const83469   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d ) const
83470   {
83471     Result result = static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) );
83472     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
83473   }
83474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83475 
83476 
83477   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const83478   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83479   {
83480     return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( pMarkerInfo ) ) );
83481   }
83482 
83483 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83484   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const PerformanceStreamMarkerInfoINTEL & markerInfo,Dispatch const & d) const83485   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
83486   {
83487     Result result = static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) );
83488     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
83489   }
83490 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83491 
83492 
83493   template <typename Dispatch>
setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,Dispatch const & d) const83494   VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83495   {
83496     d.vkCmdSetPrimitiveTopologyEXT( m_commandBuffer, static_cast<VkPrimitiveTopology>( primitiveTopology ) );
83497   }
83498 
83499 
83500   template <typename Dispatch>
setRayTracingPipelineStackSizeKHR(uint32_t pipelineStackSize,Dispatch const & d) const83501   VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83502   {
83503     d.vkCmdSetRayTracingPipelineStackSizeKHR( m_commandBuffer, pipelineStackSize );
83504   }
83505 
83506 
83507   template <typename Dispatch>
setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo,Dispatch const & d) const83508   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83509   {
83510     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( pSampleLocationsInfo ) );
83511   }
83512 
83513 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83514   template <typename Dispatch>
setSampleLocationsEXT(const SampleLocationsInfoEXT & sampleLocationsInfo,Dispatch const & d) const83515   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83516   {
83517     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) );
83518   }
83519 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83520 
83521 
83522   template <typename Dispatch>
setScissor(uint32_t firstScissor,uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const83523   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
83524   {
83525     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
83526   }
83527 
83528 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83529   template <typename Dispatch>
setScissor(uint32_t firstScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const83530   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83531   {
83532     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
83533   }
83534 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83535 
83536 
83537   template <typename Dispatch>
setScissorWithCountEXT(uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const83538   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83539   {
83540     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
83541   }
83542 
83543 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83544   template <typename Dispatch>
setScissorWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const83545   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83546   {
83547     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
83548   }
83549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83550 
83551 
83552   template <typename Dispatch>
setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const83553   VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83554   {
83555     d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
83556   }
83557 
83558 
83559   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) const83560   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
83561   {
83562     d.vkCmdSetStencilOpEXT( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), static_cast<VkStencilOp>( failOp ), static_cast<VkStencilOp>( passOp ), static_cast<VkStencilOp>( depthFailOp ), static_cast<VkCompareOp>( compareOp ) );
83563   }
83564 
83565 
83566   template <typename Dispatch>
setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const83567   VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83568   {
83569     d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
83570   }
83571 
83572 
83573   template <typename Dispatch>
setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable,Dispatch const & d) const83574   VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83575   {
83576     d.vkCmdSetStencilTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( stencilTestEnable ) );
83577   }
83578 
83579 
83580   template <typename Dispatch>
setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const83581   VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83582   {
83583     d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
83584   }
83585 
83586 
83587   template <typename Dispatch>
setViewport(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const83588   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
83589   {
83590     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
83591   }
83592 
83593 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83594   template <typename Dispatch>
setViewport(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const83595   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83596   {
83597     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
83598   }
83599 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83600 
83601 
83602   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes,Dispatch const & d) const83603   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
83604   {
83605     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV *>( pShadingRatePalettes ) );
83606   }
83607 
83608 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83609   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes,Dispatch const & d) const83610   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83611   {
83612     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size(), reinterpret_cast<const VkShadingRatePaletteNV *>( shadingRatePalettes.data() ) );
83613   }
83614 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83615 
83616 
83617   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings,Dispatch const & d) const83618   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
83619   {
83620     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewportWScalingNV *>( pViewportWScalings ) );
83621   }
83622 
83623 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83624   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings,Dispatch const & d) const83625   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83626   {
83627     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size(), reinterpret_cast<const VkViewportWScalingNV *>( viewportWScalings.data() ) );
83628   }
83629 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83630 
83631 
83632   template <typename Dispatch>
setViewportWithCountEXT(uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const83633   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83634   {
83635     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
83636   }
83637 
83638 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83639   template <typename Dispatch>
setViewportWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const83640   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83641   {
83642     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
83643   }
83644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83645 
83646 
83647   template <typename Dispatch>
traceRaysIndirectKHR(const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress,Dispatch const & d) const83648   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83649   {
83650     d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pHitShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pCallableShaderBindingTable ), static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
83651   }
83652 
83653 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83654   template <typename Dispatch>
traceRaysIndirectKHR(const StridedDeviceAddressRegionKHR & raygenShaderBindingTable,const StridedDeviceAddressRegionKHR & missShaderBindingTable,const StridedDeviceAddressRegionKHR & hitShaderBindingTable,const StridedDeviceAddressRegionKHR & callableShaderBindingTable,VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress,Dispatch const & d) const83655   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83656   {
83657     d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ), static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
83658   }
83659 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83660 
83661 
83662   template <typename Dispatch>
traceRaysKHR(const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const83663   VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83664   {
83665     d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pHitShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pCallableShaderBindingTable ), width, height, depth );
83666   }
83667 
83668 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83669   template <typename Dispatch>
traceRaysKHR(const StridedDeviceAddressRegionKHR & raygenShaderBindingTable,const StridedDeviceAddressRegionKHR & missShaderBindingTable,const StridedDeviceAddressRegionKHR & hitShaderBindingTable,const StridedDeviceAddressRegionKHR & callableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const83670   VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83671   {
83672     d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ), reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ), width, height, depth );
83673   }
83674 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83675 
83676 
83677   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) const83678   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
83679   {
83680     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 );
83681   }
83682 
83683 
83684   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) const83685   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
83686   {
83687     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( dataSize ), pData );
83688   }
83689 
83690 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83691   template <typename T, typename Dispatch>
updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,ArrayProxy<const T> const & data,Dispatch const & d) const83692   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
83693   {
83694     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), data.size() * sizeof( T ), reinterpret_cast<const void *>( data.data() ) );
83695   }
83696 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83697 
83698 
83699   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) const83700   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
83701   {
83702     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 ) );
83703   }
83704 
83705 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83706   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) const83707   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
83708   {
83709     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() ) );
83710   }
83711 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83712 
83713 
83714   template <typename Dispatch>
waitEvents2KHR(uint32_t eventCount,const VULKAN_HPP_NAMESPACE::Event * pEvents,const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfos,Dispatch const & d) const83715   VULKAN_HPP_INLINE void CommandBuffer::waitEvents2KHR( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83716   {
83717     d.vkCmdWaitEvents2KHR( m_commandBuffer, eventCount, reinterpret_cast<const VkEvent *>( pEvents ), reinterpret_cast<const VkDependencyInfoKHR *>( pDependencyInfos ) );
83718   }
83719 
83720 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83721   template <typename Dispatch>
waitEvents2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfoKHR> const & dependencyInfos,Dispatch const & d) const83722   VULKAN_HPP_INLINE void CommandBuffer::waitEvents2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfoKHR> const & dependencyInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
83723   {
83724 #ifdef VULKAN_HPP_NO_EXCEPTIONS
83725     VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() );
83726 #else
83727     if ( events.size() != dependencyInfos.size() )
83728   {
83729     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()" );
83730   }
83731 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
83732 
83733     d.vkCmdWaitEvents2KHR( m_commandBuffer, events.size(), reinterpret_cast<const VkEvent *>( events.data() ), reinterpret_cast<const VkDependencyInfoKHR *>( dependencyInfos.data() ) );
83734   }
83735 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83736 
83737 
83738   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) const83739   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
83740   {
83741     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
83742   }
83743 
83744 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83745   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) const83746   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
83747   {
83748     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
83749   }
83750 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83751 
83752 
83753   template <typename Dispatch>
writeAccelerationStructuresPropertiesNV(uint32_t accelerationStructureCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const83754   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83755   {
83756     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureNV *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
83757   }
83758 
83759 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83760   template <typename Dispatch>
writeAccelerationStructuresPropertiesNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const83761   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83762   {
83763     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureNV *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
83764   }
83765 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83766 
83767 
83768   template <typename Dispatch>
writeBufferMarker2AMD(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,uint32_t marker,Dispatch const & d) const83769   VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83770   {
83771     d.vkCmdWriteBufferMarker2AMD( m_commandBuffer, static_cast<VkPipelineStageFlags2KHR>( stage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
83772   }
83773 
83774 
83775   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) const83776   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
83777   {
83778     d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
83779   }
83780 
83781 
83782   template <typename Dispatch>
writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const83783   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
83784   {
83785     d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
83786   }
83787 
83788 
83789   template <typename Dispatch>
writeTimestamp2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const83790   VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83791   {
83792     d.vkCmdWriteTimestamp2KHR( m_commandBuffer, static_cast<VkPipelineStageFlags2KHR>( stage ), static_cast<VkQueryPool>( queryPool ), query );
83793   }
83794 
83795 
83796 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83797   template <typename Dispatch>
end(Dispatch const & d) const83798   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83799   {
83800     return static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
83801   }
83802 #else
83803   template <typename Dispatch>
end(Dispatch const & d) const83804   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::end( Dispatch const & d ) const
83805   {
83806     Result result = static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
83807     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
83808   }
83809 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83810 
83811 
83812 
83813 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83814   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const83815   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83816   {
83817     return static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
83818   }
83819 #else
83820   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const83821   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const
83822   {
83823     Result result = static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
83824     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
83825   }
83826 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83827 
83828 
83829 
83830 #ifdef VK_USE_PLATFORM_WIN32_KHR
83831 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83832   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const83833   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83834   {
83835     return static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
83836   }
83837 #else
83838   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const83839   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
83840   {
83841     Result result = static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
83842     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" );
83843   }
83844 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83845 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83846 
83847 
83848 
83849   template <typename Dispatch>
acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex,Dispatch const & d) const83850   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
83851   {
83852     return static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( pAcquireInfo ), pImageIndex ) );
83853   }
83854 
83855 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83856   template <typename Dispatch>
acquireNextImage2KHR(const AcquireNextImageInfoKHR & acquireInfo,Dispatch const & d) const83857   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d ) const
83858   {
83859     uint32_t imageIndex;
83860     Result result = static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex ) );
83861     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eNotReady, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
83862   }
83863 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83864 
83865 
83866   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) const83867   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
83868   {
83869     return static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), pImageIndex ) );
83870   }
83871 
83872 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83873   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) const83874   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
83875   {
83876     uint32_t imageIndex;
83877     Result result = static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
83878     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImageKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eNotReady, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
83879   }
83880 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83881 
83882 
83883   template <typename Dispatch>
acquirePerformanceConfigurationINTEL(const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration,Dispatch const & d) const83884   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
83885   {
83886     return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( pAcquireInfo ), reinterpret_cast< VkPerformanceConfigurationINTEL *>( pConfiguration ) ) );
83887   }
83888 
83889 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83890   template <typename Dispatch>
acquirePerformanceConfigurationINTEL(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const83891   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
83892   {
83893     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
83894     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
83895     return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" );
83896   }
83897 
83898 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83899   template <typename Dispatch>
acquirePerformanceConfigurationINTELUnique(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const83900   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>>::type Device::acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d ) const
83901   {
83902     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
83903     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
83904     ObjectRelease<Device, Dispatch> deleter( *this, d );
83905     return createResultValue<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique", deleter );
83906   }
83907 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83908 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83909 
83910 
83911   template <typename Dispatch>
acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo,Dispatch const & d) const83912   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83913   {
83914     return static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( pInfo ) ) );
83915   }
83916 
83917 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83918   template <typename Dispatch>
acquireProfilingLockKHR(const AcquireProfilingLockInfoKHR & info,Dispatch const & d) const83919   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const
83920   {
83921     Result result = static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) );
83922     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
83923   }
83924 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83925 
83926 
83927   template <typename Dispatch>
allocateCommandBuffers(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const83928   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
83929   {
83930     return static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( pAllocateInfo ), reinterpret_cast< VkCommandBuffer *>( pCommandBuffers ) ) );
83931   }
83932 
83933 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83934   template <typename CommandBufferAllocator, typename Dispatch>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const83935   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const
83936   {
83937     std::vector<CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount );
83938     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
83939     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
83940   }
83941 
83942   template <typename CommandBufferAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CommandBuffer>::value, int>::type >
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,CommandBufferAllocator & commandBufferAllocator,Dispatch const & d) const83943   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d ) const
83944   {
83945     std::vector<CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount, commandBufferAllocator );
83946     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
83947     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
83948   }
83949 
83950 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83951   template <typename Dispatch, typename CommandBufferAllocator>
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const83952   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const
83953   {
83954     std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers;
83955     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
83956     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
83957     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83958     {
83959       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
83960       PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
83961       for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ )
83962       {
83963         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
83964       }
83965     }
83966     return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
83967   }
83968 
83969   template <typename Dispatch, typename CommandBufferAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<CommandBuffer, Dispatch>>::value, int>::type >
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,CommandBufferAllocator & commandBufferAllocator,Dispatch const & d) const83970   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d ) const
83971   {
83972     std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers( commandBufferAllocator );
83973     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
83974     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
83975     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83976     {
83977       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
83978       PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
83979       for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ )
83980       {
83981         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
83982       }
83983     }
83984     return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
83985   }
83986 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83988 
83989 
83990   template <typename Dispatch>
allocateDescriptorSets(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const83991   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
83992   {
83993     return static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( pAllocateInfo ), reinterpret_cast< VkDescriptorSet *>( pDescriptorSets ) ) );
83994   }
83995 
83996 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83997   template <typename DescriptorSetAllocator, typename Dispatch>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const83998   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const
83999   {
84000     std::vector<DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount );
84001     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
84002     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
84003   }
84004 
84005   template <typename DescriptorSetAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DescriptorSet>::value, int>::type >
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,DescriptorSetAllocator & descriptorSetAllocator,Dispatch const & d) const84006   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d ) const
84007   {
84008     std::vector<DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount, descriptorSetAllocator );
84009     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
84010     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
84011   }
84012 
84013 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84014   template <typename Dispatch, typename DescriptorSetAllocator>
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const84015   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const
84016   {
84017     std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets;
84018     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
84019     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
84020     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
84021     {
84022       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
84023       PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
84024       for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ )
84025       {
84026         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
84027       }
84028     }
84029     return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
84030   }
84031 
84032   template <typename Dispatch, typename DescriptorSetAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<DescriptorSet, Dispatch>>::value, int>::type >
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,DescriptorSetAllocator & descriptorSetAllocator,Dispatch const & d) const84033   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d ) const
84034   {
84035     std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets( descriptorSetAllocator );
84036     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
84037     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
84038     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
84039     {
84040       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
84041       PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
84042       for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ )
84043       {
84044         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
84045       }
84046     }
84047     return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
84048   }
84049 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84051 
84052 
84053   template <typename Dispatch>
allocateMemory(const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo * pAllocateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory,Dispatch const & d) const84054   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
84055   {
84056     return static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo *>( pAllocateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDeviceMemory *>( pMemory ) ) );
84057   }
84058 
84059 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84060   template <typename Dispatch>
allocateMemory(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84061   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
84062   {
84063     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
84064     Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
84065     return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" );
84066   }
84067 
84068 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84069   template <typename Dispatch>
allocateMemoryUnique(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84070   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84071   {
84072     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
84073     Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
84074     ObjectFree<Device, Dispatch> deleter( *this, allocator, d );
84075     return createResultValue<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique", deleter );
84076   }
84077 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84078 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84079 
84080 
84081   template <typename Dispatch>
bindAccelerationStructureMemoryNV(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV * pBindInfos,Dispatch const & d) const84082   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84083   {
84084     return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( pBindInfos ) ) );
84085   }
84086 
84087 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84088   template <typename Dispatch>
bindAccelerationStructureMemoryNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos,Dispatch const & d) const84089   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindAccelerationStructureMemoryNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos, Dispatch const & d ) const
84090   {
84091     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( bindInfos.data() ) ) );
84092     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
84093   }
84094 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84095 
84096 
84097 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
84098   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const84099   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
84100   {
84101     return static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
84102   }
84103 #else
84104   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const84105   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
84106   {
84107     Result result = static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
84108     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" );
84109   }
84110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84111 
84112 
84113 
84114   template <typename Dispatch>
bindBufferMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const84115   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
84116   {
84117     return static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
84118   }
84119 
84120 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84121   template <typename Dispatch>
bindBufferMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const84122   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
84123   {
84124     Result result = static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
84125     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
84126   }
84127 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84128 
84129   template <typename Dispatch>
bindBufferMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const84130   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
84131   {
84132     return static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
84133   }
84134 
84135 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84136   template <typename Dispatch>
bindBufferMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const84137   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
84138   {
84139     Result result = static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
84140     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
84141   }
84142 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84143 
84144 
84145 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
84146   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const84147   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
84148   {
84149     return static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
84150   }
84151 #else
84152   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const84153   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
84154   {
84155     Result result = static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
84156     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" );
84157   }
84158 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84159 
84160 
84161 
84162   template <typename Dispatch>
bindImageMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const84163   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
84164   {
84165     return static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
84166   }
84167 
84168 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84169   template <typename Dispatch>
bindImageMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const84170   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
84171   {
84172     Result result = static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
84173     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
84174   }
84175 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84176 
84177   template <typename Dispatch>
bindImageMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const84178   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
84179   {
84180     return static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
84181   }
84182 
84183 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84184   template <typename Dispatch>
bindImageMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const84185   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
84186   {
84187     Result result = static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
84188     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
84189   }
84190 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84191 
84192 
84193   template <typename Dispatch>
buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos,Dispatch const & d) const84194   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84195   {
84196     return static_cast<Result>( d.vkBuildAccelerationStructuresKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( ppBuildRangeInfos ) ) );
84197   }
84198 
84199 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84200   template <typename Dispatch>
buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos,Dispatch const & d) const84201   VULKAN_HPP_INLINE Result Device::buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const > const & pBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
84202   {
84203 #ifdef VULKAN_HPP_NO_EXCEPTIONS
84204     VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() );
84205 #else
84206     if ( infos.size() != pBuildRangeInfos.size() )
84207   {
84208     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" );
84209   }
84210 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
84211 
84212     Result result = static_cast<Result>( d.vkBuildAccelerationStructuresKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), infos.size(), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) ) );
84213     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
84214   }
84215 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84216 
84217 
84218 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
84219   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const84220   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84221   {
84222     return static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
84223   }
84224 #else
84225   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const84226   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
84227   {
84228     Result result = static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
84229     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" );
84230   }
84231 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84232 
84233 
84234 
84235   template <typename Dispatch>
copyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const84236   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84237   {
84238     return static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) ) );
84239   }
84240 
84241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84242   template <typename Dispatch>
copyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const84243   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const
84244   {
84245     Result result = static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) );
84246     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
84247   }
84248 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84249 
84250 
84251   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const84252   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84253   {
84254     return static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) ) );
84255   }
84256 
84257 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84258   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const84259   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const
84260   {
84261     Result result = static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) );
84262     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
84263   }
84264 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84265 
84266 
84267   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const84268   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84269   {
84270     return static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) ) );
84271   }
84272 
84273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84274   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const84275   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const
84276   {
84277     Result result = static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) );
84278     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
84279   }
84280 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84281 
84282 
84283   template <typename Dispatch>
createAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure,Dispatch const & d) const84284   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
84285   {
84286     return static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkAccelerationStructureKHR *>( pAccelerationStructure ) ) );
84287   }
84288 
84289 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84290   template <typename Dispatch>
createAccelerationStructureKHR(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84291   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
84292   {
84293     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
84294     Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
84295     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" );
84296   }
84297 
84298 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84299   template <typename Dispatch>
createAccelerationStructureKHRUnique(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84300   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>>::type Device::createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84301   {
84302     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
84303     Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
84304     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84305     return createResultValue<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique", deleter );
84306   }
84307 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84309 
84310 
84311   template <typename Dispatch>
createAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure,Dispatch const & d) const84312   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84313   {
84314     return static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkAccelerationStructureNV *>( pAccelerationStructure ) ) );
84315   }
84316 
84317 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84318   template <typename Dispatch>
createAccelerationStructureNV(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84319   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84320   {
84321     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
84322     Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
84323     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" );
84324   }
84325 
84326 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84327   template <typename Dispatch>
createAccelerationStructureNVUnique(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84328   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84329   {
84330     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
84331     Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
84332     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84333     return createResultValue<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique", deleter );
84334   }
84335 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84336 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84337 
84338 
84339   template <typename Dispatch>
createBuffer(const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Buffer * pBuffer,Dispatch const & d) const84340   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
84341   {
84342     return static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkBuffer *>( pBuffer ) ) );
84343   }
84344 
84345 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84346   template <typename Dispatch>
createBuffer(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84347   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
84348   {
84349     VULKAN_HPP_NAMESPACE::Buffer buffer;
84350     Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer *>( &buffer ) ) );
84351     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" );
84352   }
84353 
84354 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84355   template <typename Dispatch>
createBufferUnique(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84356   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84357   {
84358     VULKAN_HPP_NAMESPACE::Buffer buffer;
84359     Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer *>( &buffer ) ) );
84360     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84361     return createResultValue<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique", deleter );
84362   }
84363 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84364 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84365 
84366 
84367   template <typename Dispatch>
createBufferView(const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::BufferView * pView,Dispatch const & d) const84368   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
84369   {
84370     return static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkBufferView *>( pView ) ) );
84371   }
84372 
84373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84374   template <typename Dispatch>
createBufferView(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84375   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
84376   {
84377     VULKAN_HPP_NAMESPACE::BufferView view;
84378     Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView *>( &view ) ) );
84379     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" );
84380   }
84381 
84382 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84383   template <typename Dispatch>
createBufferViewUnique(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84384   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84385   {
84386     VULKAN_HPP_NAMESPACE::BufferView view;
84387     Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView *>( &view ) ) );
84388     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84389     return createResultValue<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique", deleter );
84390   }
84391 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84392 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84393 
84394 
84395   template <typename Dispatch>
createCommandPool(const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool,Dispatch const & d) const84396   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
84397   {
84398     return static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkCommandPool *>( pCommandPool ) ) );
84399   }
84400 
84401 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84402   template <typename Dispatch>
createCommandPool(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84403   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
84404   {
84405     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
84406     Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
84407     return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" );
84408   }
84409 
84410 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84411   template <typename Dispatch>
createCommandPoolUnique(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84412   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84413   {
84414     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
84415     Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
84416     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84417     return createResultValue<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique", deleter );
84418   }
84419 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84420 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84421 
84422 
84423   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) const84424   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
84425   {
84426     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 ) ) );
84427   }
84428 
84429 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84430   template <typename PipelineAllocator, typename Dispatch>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84431   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84432   {
84433     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
84434     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84435     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84436   }
84437 
84438   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84439   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84440   {
84441     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
84442     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84443     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84444   }
84445 
84446   template <typename Dispatch>
createComputePipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84447   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84448   {
84449     Pipeline pipeline;
84450     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84451     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84452   }
84453 
84454 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84455   template <typename Dispatch, typename PipelineAllocator>
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84456   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84457   {
84458     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
84459     std::vector<Pipeline> pipelines( createInfos.size() );
84460     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84461     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84462     {
84463       uniquePipelines.reserve( createInfos.size() );
84464       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84465       for ( size_t i=0; i < createInfos.size(); i++ )
84466       {
84467         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84468       }
84469     }
84470     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84471   }
84472 
84473   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84474   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84475   {
84476     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
84477     std::vector<Pipeline> pipelines( createInfos.size() );
84478     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84479     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84480     {
84481       uniquePipelines.reserve( createInfos.size() );
84482       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84483       for ( size_t i=0; i < createInfos.size(); i++ )
84484       {
84485         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84486       }
84487     }
84488     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84489   }
84490 
84491   template <typename Dispatch>
createComputePipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84492   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84493   {
84494     Pipeline pipeline;
84495     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84496     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84497     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
84498   }
84499 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84500 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84501 
84502 
84503   template <typename Dispatch>
createDeferredOperationKHR(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation,Dispatch const & d) const84504   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84505   {
84506     return static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDeferredOperationKHR *>( pDeferredOperation ) ) );
84507   }
84508 
84509 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84510   template <typename Dispatch>
createDeferredOperationKHR(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84511   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type Device::createDeferredOperationKHR( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84512   {
84513     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
84514     Result result = static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
84515     return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" );
84516   }
84517 
84518 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84519   template <typename Dispatch>
createDeferredOperationKHRUnique(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84520   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>>::type Device::createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84521   {
84522     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
84523     Result result = static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
84524     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84525     return createResultValue<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique", deleter );
84526   }
84527 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84528 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84529 
84530 
84531   template <typename Dispatch>
createDescriptorPool(const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool,Dispatch const & d) const84532   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
84533   {
84534     return static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorPool *>( pDescriptorPool ) ) );
84535   }
84536 
84537 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84538   template <typename Dispatch>
createDescriptorPool(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84539   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
84540   {
84541     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
84542     Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
84543     return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" );
84544   }
84545 
84546 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84547   template <typename Dispatch>
createDescriptorPoolUnique(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84548   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84549   {
84550     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
84551     Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
84552     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84553     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique", deleter );
84554   }
84555 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84557 
84558 
84559   template <typename Dispatch>
createDescriptorSetLayout(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout,Dispatch const & d) const84560   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
84561   {
84562     return static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorSetLayout *>( pSetLayout ) ) );
84563   }
84564 
84565 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84566   template <typename Dispatch>
createDescriptorSetLayout(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84567   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
84568   {
84569     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
84570     Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
84571     return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" );
84572   }
84573 
84574 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84575   template <typename Dispatch>
createDescriptorSetLayoutUnique(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84576   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84577   {
84578     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
84579     Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
84580     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84581     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique", deleter );
84582   }
84583 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84584 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84585 
84586 
84587   template <typename Dispatch>
createDescriptorUpdateTemplate(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const84588   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
84589   {
84590     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) );
84591   }
84592 
84593 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84594   template <typename Dispatch>
createDescriptorUpdateTemplate(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84595   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
84596   {
84597     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
84598     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
84599     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" );
84600   }
84601 
84602 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84603   template <typename Dispatch>
createDescriptorUpdateTemplateUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84604   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84605   {
84606     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
84607     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
84608     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84609     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique", deleter );
84610   }
84611 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84612 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84613 
84614   template <typename Dispatch>
createDescriptorUpdateTemplateKHR(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const84615   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
84616   {
84617     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) );
84618   }
84619 
84620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84621   template <typename Dispatch>
createDescriptorUpdateTemplateKHR(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84622   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
84623   {
84624     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
84625     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
84626     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" );
84627   }
84628 
84629 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84630   template <typename Dispatch>
createDescriptorUpdateTemplateKHRUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84631   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84632   {
84633     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
84634     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
84635     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84636     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique", deleter );
84637   }
84638 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84639 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84640 
84641 
84642   template <typename Dispatch>
createEvent(const VULKAN_HPP_NAMESPACE::EventCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Event * pEvent,Dispatch const & d) const84643   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
84644   {
84645     return static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkEvent *>( pEvent ) ) );
84646   }
84647 
84648 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84649   template <typename Dispatch>
createEvent(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84650   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
84651   {
84652     VULKAN_HPP_NAMESPACE::Event event;
84653     Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent *>( &event ) ) );
84654     return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" );
84655   }
84656 
84657 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84658   template <typename Dispatch>
createEventUnique(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84659   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Event, Dispatch>>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84660   {
84661     VULKAN_HPP_NAMESPACE::Event event;
84662     Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent *>( &event ) ) );
84663     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84664     return createResultValue<VULKAN_HPP_NAMESPACE::Event, Dispatch>( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique", deleter );
84665   }
84666 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84667 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84668 
84669 
84670   template <typename Dispatch>
createFence(const VULKAN_HPP_NAMESPACE::FenceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const84671   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
84672   {
84673     return static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) );
84674   }
84675 
84676 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84677   template <typename Dispatch>
createFence(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84678   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
84679   {
84680     VULKAN_HPP_NAMESPACE::Fence fence;
84681     Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
84682     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" );
84683   }
84684 
84685 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84686   template <typename Dispatch>
createFenceUnique(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84687   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84688   {
84689     VULKAN_HPP_NAMESPACE::Fence fence;
84690     Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
84691     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84692     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique", deleter );
84693   }
84694 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84695 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84696 
84697 
84698   template <typename Dispatch>
createFramebuffer(const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer,Dispatch const & d) const84699   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
84700   {
84701     return static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFramebuffer *>( pFramebuffer ) ) );
84702   }
84703 
84704 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84705   template <typename Dispatch>
createFramebuffer(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84706   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
84707   {
84708     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
84709     Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
84710     return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" );
84711   }
84712 
84713 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84714   template <typename Dispatch>
createFramebufferUnique(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84715   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84716   {
84717     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
84718     Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
84719     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84720     return createResultValue<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique", deleter );
84721   }
84722 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84723 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84724 
84725 
84726   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) const84727   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
84728   {
84729     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 ) ) );
84730   }
84731 
84732 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84733   template <typename PipelineAllocator, typename Dispatch>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84734   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84735   {
84736     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
84737     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84738     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84739   }
84740 
84741   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84742   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84743   {
84744     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
84745     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84746     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84747   }
84748 
84749   template <typename Dispatch>
createGraphicsPipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84750   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84751   {
84752     Pipeline pipeline;
84753     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84754     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84755   }
84756 
84757 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84758   template <typename Dispatch, typename PipelineAllocator>
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84759   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84760   {
84761     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
84762     std::vector<Pipeline> pipelines( createInfos.size() );
84763     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84764     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84765     {
84766       uniquePipelines.reserve( createInfos.size() );
84767       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84768       for ( size_t i=0; i < createInfos.size(); i++ )
84769       {
84770         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84771       }
84772     }
84773     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84774   }
84775 
84776   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84777   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84778   {
84779     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
84780     std::vector<Pipeline> pipelines( createInfos.size() );
84781     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84782     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84783     {
84784       uniquePipelines.reserve( createInfos.size() );
84785       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84786       for ( size_t i=0; i < createInfos.size(); i++ )
84787       {
84788         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84789       }
84790     }
84791     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84792   }
84793 
84794   template <typename Dispatch>
createGraphicsPipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84795   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84796   {
84797     Pipeline pipeline;
84798     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84799     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84800     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
84801   }
84802 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84803 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84804 
84805 
84806   template <typename Dispatch>
createImage(const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Image * pImage,Dispatch const & d) const84807   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
84808   {
84809     return static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkImage *>( pImage ) ) );
84810   }
84811 
84812 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84813   template <typename Dispatch>
createImage(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84814   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
84815   {
84816     VULKAN_HPP_NAMESPACE::Image image;
84817     Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage *>( &image ) ) );
84818     return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" );
84819   }
84820 
84821 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84822   template <typename Dispatch>
createImageUnique(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84823   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Image, Dispatch>>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84824   {
84825     VULKAN_HPP_NAMESPACE::Image image;
84826     Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage *>( &image ) ) );
84827     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84828     return createResultValue<VULKAN_HPP_NAMESPACE::Image, Dispatch>( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique", deleter );
84829   }
84830 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84831 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84832 
84833 
84834   template <typename Dispatch>
createImageView(const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ImageView * pView,Dispatch const & d) const84835   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
84836   {
84837     return static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkImageView *>( pView ) ) );
84838   }
84839 
84840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84841   template <typename Dispatch>
createImageView(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84842   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
84843   {
84844     VULKAN_HPP_NAMESPACE::ImageView view;
84845     Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView *>( &view ) ) );
84846     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" );
84847   }
84848 
84849 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84850   template <typename Dispatch>
createImageViewUnique(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84851   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84852   {
84853     VULKAN_HPP_NAMESPACE::ImageView view;
84854     Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView *>( &view ) ) );
84855     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84856     return createResultValue<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique", deleter );
84857   }
84858 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84859 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84860 
84861 
84862   template <typename Dispatch>
createIndirectCommandsLayoutNV(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout,Dispatch const & d) const84863   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
84864   {
84865     return static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkIndirectCommandsLayoutNV *>( pIndirectCommandsLayout ) ) );
84866   }
84867 
84868 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84869   template <typename Dispatch>
createIndirectCommandsLayoutNV(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84870   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
84871   {
84872     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
84873     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
84874     return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" );
84875   }
84876 
84877 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84878   template <typename Dispatch>
createIndirectCommandsLayoutNVUnique(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84879   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>>::type Device::createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84880   {
84881     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
84882     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
84883     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84884     return createResultValue<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique", deleter );
84885   }
84886 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84887 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84888 
84889 
84890   template <typename Dispatch>
createPipelineCache(const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache,Dispatch const & d) const84891   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
84892   {
84893     return static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipelineCache *>( pPipelineCache ) ) );
84894   }
84895 
84896 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84897   template <typename Dispatch>
createPipelineCache(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84898   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
84899   {
84900     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
84901     Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
84902     return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" );
84903   }
84904 
84905 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84906   template <typename Dispatch>
createPipelineCacheUnique(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84907   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84908   {
84909     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
84910     Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
84911     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84912     return createResultValue<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique", deleter );
84913   }
84914 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84915 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84916 
84917 
84918   template <typename Dispatch>
createPipelineLayout(const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout,Dispatch const & d) const84919   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
84920   {
84921     return static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipelineLayout *>( pPipelineLayout ) ) );
84922   }
84923 
84924 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84925   template <typename Dispatch>
createPipelineLayout(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84926   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
84927   {
84928     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
84929     Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
84930     return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" );
84931   }
84932 
84933 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84934   template <typename Dispatch>
createPipelineLayoutUnique(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84935   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84936   {
84937     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
84938     Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
84939     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84940     return createResultValue<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique", deleter );
84941   }
84942 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84943 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84944 
84945 
84946   template <typename Dispatch>
createPrivateDataSlotEXT(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT * pPrivateDataSlot,Dispatch const & d) const84947   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT* pPrivateDataSlot, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84948   {
84949     return static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPrivateDataSlotEXT *>( pPrivateDataSlot ) ) );
84950   }
84951 
84952 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84953   template <typename Dispatch>
createPrivateDataSlotEXT(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84954   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>::type Device::createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84955   {
84956     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
84957     Result result = static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPrivateDataSlotEXT *>( &privateDataSlot ) ) );
84958     return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" );
84959   }
84960 
84961 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84962   template <typename Dispatch>
createPrivateDataSlotEXTUnique(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84963   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT, Dispatch>>::type Device::createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84964   {
84965     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
84966     Result result = static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPrivateDataSlotEXT *>( &privateDataSlot ) ) );
84967     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84968     return createResultValue<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT, Dispatch>( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique", deleter );
84969   }
84970 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84972 
84973 
84974   template <typename Dispatch>
createQueryPool(const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool,Dispatch const & d) const84975   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
84976   {
84977     return static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkQueryPool *>( pQueryPool ) ) );
84978   }
84979 
84980 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84981   template <typename Dispatch>
createQueryPool(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84982   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
84983   {
84984     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
84985     Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
84986     return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" );
84987   }
84988 
84989 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84990   template <typename Dispatch>
createQueryPoolUnique(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84991   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84992   {
84993     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
84994     Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
84995     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84996     return createResultValue<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique", deleter );
84997   }
84998 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84999 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85000 
85001 
85002   template <typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,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) const85003   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 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
85004   {
85005     return static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) );
85006   }
85007 
85008 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85009   template <typename PipelineAllocator, typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85010   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85011   {
85012     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
85013     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
85014     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
85015   }
85016 
85017   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const85018   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
85019   {
85020     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
85021     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
85022     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
85023   }
85024 
85025   template <typename Dispatch>
createRayTracingPipelineKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85026   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85027   {
85028     Pipeline pipeline;
85029     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
85030     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
85031   }
85032 
85033 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85034   template <typename Dispatch, typename PipelineAllocator>
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85035   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85036   {
85037     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
85038     std::vector<Pipeline> pipelines( createInfos.size() );
85039     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
85040     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 ) )
85041     {
85042       uniquePipelines.reserve( createInfos.size() );
85043       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85044       for ( size_t i=0; i < createInfos.size(); i++ )
85045       {
85046         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
85047       }
85048     }
85049     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 } );
85050   }
85051 
85052   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const85053   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
85054   {
85055     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
85056     std::vector<Pipeline> pipelines( createInfos.size() );
85057     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
85058     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 ) )
85059     {
85060       uniquePipelines.reserve( createInfos.size() );
85061       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85062       for ( size_t i=0; i < createInfos.size(); i++ )
85063       {
85064         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
85065       }
85066     }
85067     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 } );
85068   }
85069 
85070   template <typename Dispatch>
createRayTracingPipelineKHRUnique(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85071   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85072   {
85073     Pipeline pipeline;
85074     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
85075     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85076     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
85077   }
85078 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85079 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85080 
85081 
85082   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) const85083   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
85084   {
85085     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 ) ) );
85086   }
85087 
85088 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85089   template <typename PipelineAllocator, typename Dispatch>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85090   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85091   {
85092     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
85093     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
85094     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
85095   }
85096 
85097   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const85098   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
85099   {
85100     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
85101     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
85102     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
85103   }
85104 
85105   template <typename Dispatch>
createRayTracingPipelineNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85106   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85107   {
85108     Pipeline pipeline;
85109     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
85110     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
85111   }
85112 
85113 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85114   template <typename Dispatch, typename PipelineAllocator>
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85115   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85116   {
85117     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
85118     std::vector<Pipeline> pipelines( createInfos.size() );
85119     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
85120     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
85121     {
85122       uniquePipelines.reserve( createInfos.size() );
85123       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85124       for ( size_t i=0; i < createInfos.size(); i++ )
85125       {
85126         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
85127       }
85128     }
85129     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
85130   }
85131 
85132   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const85133   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
85134   {
85135     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
85136     std::vector<Pipeline> pipelines( createInfos.size() );
85137     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
85138     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
85139     {
85140       uniquePipelines.reserve( createInfos.size() );
85141       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85142       for ( size_t i=0; i < createInfos.size(); i++ )
85143       {
85144         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
85145       }
85146     }
85147     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
85148   }
85149 
85150   template <typename Dispatch>
createRayTracingPipelineNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85151   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85152   {
85153     Pipeline pipeline;
85154     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
85155     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85156     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
85157   }
85158 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85159 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85160 
85161 
85162   template <typename Dispatch>
createRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const85163   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
85164   {
85165     return static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
85166   }
85167 
85168 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85169   template <typename Dispatch>
createRenderPass(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85170   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
85171   {
85172     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
85173     Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
85174     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" );
85175   }
85176 
85177 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85178   template <typename Dispatch>
createRenderPassUnique(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85179   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85180   {
85181     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
85182     Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
85183     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85184     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique", deleter );
85185   }
85186 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85187 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85188 
85189 
85190   template <typename Dispatch>
createRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const85191   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
85192   {
85193     return static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
85194   }
85195 
85196 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85197   template <typename Dispatch>
createRenderPass2(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85198   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
85199   {
85200     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
85201     Result result = static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
85202     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" );
85203   }
85204 
85205 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85206   template <typename Dispatch>
createRenderPass2Unique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85207   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type Device::createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85208   {
85209     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
85210     Result result = static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
85211     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85212     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique", deleter );
85213   }
85214 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85215 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85216 
85217   template <typename Dispatch>
createRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const85218   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
85219   {
85220     return static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
85221   }
85222 
85223 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85224   template <typename Dispatch>
createRenderPass2KHR(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85225   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
85226   {
85227     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
85228     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
85229     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" );
85230   }
85231 
85232 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85233   template <typename Dispatch>
createRenderPass2KHRUnique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85234   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85235   {
85236     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
85237     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
85238     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85239     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique", deleter );
85240   }
85241 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85242 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85243 
85244 
85245   template <typename Dispatch>
createSampler(const VULKAN_HPP_NAMESPACE::SamplerCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Sampler * pSampler,Dispatch const & d) const85246   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
85247   {
85248     return static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSampler *>( pSampler ) ) );
85249   }
85250 
85251 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85252   template <typename Dispatch>
createSampler(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85253   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
85254   {
85255     VULKAN_HPP_NAMESPACE::Sampler sampler;
85256     Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler *>( &sampler ) ) );
85257     return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" );
85258   }
85259 
85260 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85261   template <typename Dispatch>
createSamplerUnique(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85262   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85263   {
85264     VULKAN_HPP_NAMESPACE::Sampler sampler;
85265     Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler *>( &sampler ) ) );
85266     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85267     return createResultValue<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique", deleter );
85268   }
85269 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85270 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85271 
85272 
85273   template <typename Dispatch>
createSamplerYcbcrConversion(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const85274   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
85275   {
85276     return static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) );
85277   }
85278 
85279 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85280   template <typename Dispatch>
createSamplerYcbcrConversion(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85281   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
85282   {
85283     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
85284     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
85285     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" );
85286   }
85287 
85288 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85289   template <typename Dispatch>
createSamplerYcbcrConversionUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85290   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85291   {
85292     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
85293     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
85294     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85295     return createResultValue<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique", deleter );
85296   }
85297 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85298 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85299 
85300   template <typename Dispatch>
createSamplerYcbcrConversionKHR(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const85301   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
85302   {
85303     return static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) );
85304   }
85305 
85306 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85307   template <typename Dispatch>
createSamplerYcbcrConversionKHR(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85308   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
85309   {
85310     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
85311     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
85312     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" );
85313   }
85314 
85315 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85316   template <typename Dispatch>
createSamplerYcbcrConversionKHRUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85317   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85318   {
85319     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
85320     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
85321     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85322     return createResultValue<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique", deleter );
85323   }
85324 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85325 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85326 
85327 
85328   template <typename Dispatch>
createSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore,Dispatch const & d) const85329   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
85330   {
85331     return static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSemaphore *>( pSemaphore ) ) );
85332   }
85333 
85334 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85335   template <typename Dispatch>
createSemaphore(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85336   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
85337   {
85338     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
85339     Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
85340     return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" );
85341   }
85342 
85343 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85344   template <typename Dispatch>
createSemaphoreUnique(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85345   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85346   {
85347     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
85348     Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
85349     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85350     return createResultValue<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique", deleter );
85351   }
85352 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85353 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85354 
85355 
85356   template <typename Dispatch>
createShaderModule(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule,Dispatch const & d) const85357   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
85358   {
85359     return static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkShaderModule *>( pShaderModule ) ) );
85360   }
85361 
85362 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85363   template <typename Dispatch>
createShaderModule(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85364   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
85365   {
85366     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
85367     Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
85368     return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" );
85369   }
85370 
85371 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85372   template <typename Dispatch>
createShaderModuleUnique(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85373   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85374   {
85375     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
85376     Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
85377     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85378     return createResultValue<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique", deleter );
85379   }
85380 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85381 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85382 
85383 
85384   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) const85385   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
85386   {
85387     return static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchains ) ) );
85388   }
85389 
85390 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85391   template <typename SwapchainKHRAllocator, typename Dispatch>
createSharedSwapchainsKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85392   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85393   {
85394     std::vector<SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size() );
85395     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
85396     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
85397   }
85398 
85399   template <typename SwapchainKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SwapchainKHR>::value, int>::type >
createSharedSwapchainsKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,SwapchainKHRAllocator & swapchainKHRAllocator,Dispatch const & d) const85400   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d ) const
85401   {
85402     std::vector<SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size(), swapchainKHRAllocator );
85403     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
85404     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
85405   }
85406 
85407   template <typename Dispatch>
createSharedSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85408   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<SwapchainKHR>::type Device::createSharedSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85409   {
85410     SwapchainKHR swapchain;
85411     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
85412     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" );
85413   }
85414 
85415 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85416   template <typename Dispatch, typename SwapchainKHRAllocator>
createSharedSwapchainsKHRUnique(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85417   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85418   {
85419     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains;
85420     std::vector<SwapchainKHR> swapchains( createInfos.size() );
85421     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
85422     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
85423     {
85424       uniqueSwapchains.reserve( createInfos.size() );
85425       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85426       for ( size_t i=0; i < createInfos.size(); i++ )
85427       {
85428         uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchains[i], deleter ) );
85429       }
85430     }
85431     return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
85432   }
85433 
85434   template <typename Dispatch, typename SwapchainKHRAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<SwapchainKHR, Dispatch>>::value, int>::type >
createSharedSwapchainsKHRUnique(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,SwapchainKHRAllocator & swapchainKHRAllocator,Dispatch const & d) const85435   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d ) const
85436   {
85437     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator );
85438     std::vector<SwapchainKHR> swapchains( createInfos.size() );
85439     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
85440     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
85441     {
85442       uniqueSwapchains.reserve( createInfos.size() );
85443       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85444       for ( size_t i=0; i < createInfos.size(); i++ )
85445       {
85446         uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchains[i], deleter ) );
85447       }
85448     }
85449     return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
85450   }
85451 
85452   template <typename Dispatch>
createSharedSwapchainKHRUnique(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85453   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR, Dispatch>>::type Device::createSharedSwapchainKHRUnique( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85454   {
85455     SwapchainKHR swapchain;
85456     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
85457     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85458     return createResultValue<SwapchainKHR, Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique", deleter );
85459   }
85460 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85461 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85462 
85463 
85464   template <typename Dispatch>
createSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain,Dispatch const & d) const85465   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
85466   {
85467     return static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchain ) ) );
85468   }
85469 
85470 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85471   template <typename Dispatch>
createSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85472   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
85473   {
85474     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
85475     Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
85476     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" );
85477   }
85478 
85479 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85480   template <typename Dispatch>
createSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85481   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85482   {
85483     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
85484     Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
85485     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85486     return createResultValue<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique", deleter );
85487   }
85488 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85489 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85490 
85491 
85492   template <typename Dispatch>
createValidationCacheEXT(const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache,Dispatch const & d) const85493   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85494   {
85495     return static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkValidationCacheEXT *>( pValidationCache ) ) );
85496   }
85497 
85498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85499   template <typename Dispatch>
createValidationCacheEXT(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85500   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85501   {
85502     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
85503     Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
85504     return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" );
85505   }
85506 
85507 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85508   template <typename Dispatch>
createValidationCacheEXTUnique(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85509   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85510   {
85511     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
85512     Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
85513     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85514     return createResultValue<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique", deleter );
85515   }
85516 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85518 
85519 
85520   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo,Dispatch const & d) const85521   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85522   {
85523     return static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( pNameInfo ) ) );
85524   }
85525 
85526 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85527   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const DebugMarkerObjectNameInfoEXT & nameInfo,Dispatch const & d) const85528   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
85529   {
85530     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) );
85531     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
85532   }
85533 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85534 
85535 
85536   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo,Dispatch const & d) const85537   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85538   {
85539     return static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( pTagInfo ) ) );
85540   }
85541 
85542 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85543   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const DebugMarkerObjectTagInfoEXT & tagInfo,Dispatch const & d) const85544   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
85545   {
85546     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) );
85547     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
85548   }
85549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85550 
85551 
85552 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
85553   template <typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const85554   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85555   {
85556     return static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
85557   }
85558 #else
85559   template <typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const85560   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const
85561   {
85562     Result result = static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
85563     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::deferredOperationJoinKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } );
85564   }
85565 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85566 
85567 
85568 
85569   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85570   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85571   {
85572     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85573   }
85574 
85575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85576   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85577   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85578   {
85579     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85580   }
85581 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85582 
85583 
85584   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85585   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85586   {
85587     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85588   }
85589 
85590 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85591   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85592   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85593   {
85594     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85595   }
85596 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85597 
85598 
85599   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85600   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85601   {
85602     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85603   }
85604 
85605 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85606   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85607   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85608   {
85609     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85610   }
85611 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85612 
85613 
85614   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85615   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85616   {
85617     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85618   }
85619 
85620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85621   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85622   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85623   {
85624     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85625   }
85626 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85627 
85628 
85629   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85630   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85631   {
85632     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85633   }
85634 
85635 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85636   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85637   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85638   {
85639     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85640   }
85641 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85642 
85643 
85644   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85645   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85646   {
85647     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85648   }
85649 
85650 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85651   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85652   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85653   {
85654     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85655   }
85656 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85657 
85658 
85659   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85660   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85661   {
85662     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85663   }
85664 
85665 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85666   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85667   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85668   {
85669     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85670   }
85671 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85672 
85673 
85674   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85675   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85676   {
85677     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85678   }
85679 
85680 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85681   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85682   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85683   {
85684     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85685   }
85686 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85687 
85688 
85689   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85690   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85691   {
85692     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85693   }
85694 
85695 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85696   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85697   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85698   {
85699     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85700   }
85701 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85702 
85703 
85704   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85705   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85706   {
85707     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85708   }
85709 
85710 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85711   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85712   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85713   {
85714     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85715   }
85716 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85717 
85718 
85719   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85720   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85721   {
85722     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85723   }
85724 
85725 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85726   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85727   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85728   {
85729     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85730   }
85731 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85732 
85733 
85734   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85735   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85736   {
85737     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85738   }
85739 
85740 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85741   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85742   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85743   {
85744     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85745   }
85746 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85747 
85748 
85749   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85750   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85751   {
85752     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85753   }
85754 
85755 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85756   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85757   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85758   {
85759     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85760   }
85761 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85762 
85763 
85764   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85765   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85766   {
85767     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85768   }
85769 
85770 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85771   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85772   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85773   {
85774     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85775   }
85776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85777 
85778 
85779   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85780   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85781   {
85782     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85783   }
85784 
85785 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85786   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85787   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85788   {
85789     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85790   }
85791 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85792 
85793 
85794   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85795   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85796   {
85797     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85798   }
85799 
85800 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85801   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85802   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85803   {
85804     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85805   }
85806 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85807 
85808 
85809   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85810   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85811   {
85812     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85813   }
85814 
85815 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85816   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85817   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85818   {
85819     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85820   }
85821 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85822 
85823   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85824   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85825   {
85826     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85827   }
85828 
85829 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85830   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85831   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85832   {
85833     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85834   }
85835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85836 
85837 
85838   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85839   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85840   {
85841     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85842   }
85843 
85844 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85845   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85846   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85847   {
85848     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85849   }
85850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85851 
85852 
85853   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85854   VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85855   {
85856     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85857   }
85858 
85859 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85860   template <typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85861   VULKAN_HPP_INLINE void Device::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85862   {
85863     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85864   }
85865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85866 
85867 
85868   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85869   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85870   {
85871     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85872   }
85873 
85874 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85875   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85876   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85877   {
85878     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85879   }
85880 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85881 
85882 
85883   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85884   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85885   {
85886     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85887   }
85888 
85889 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85890   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85891   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85892   {
85893     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85894   }
85895 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85896 
85897 
85898   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85899   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85900   {
85901     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85902   }
85903 
85904 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85905   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85906   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85907   {
85908     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85909   }
85910 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85911 
85912 
85913   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85914   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85915   {
85916     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85917   }
85918 
85919 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85920   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85921   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85922   {
85923     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85924   }
85925 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85926 
85927 
85928   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85929   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85930   {
85931     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85932   }
85933 
85934 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85935   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85936   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85937   {
85938     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85939   }
85940 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85941 
85942 
85943   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85944   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85945   {
85946     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85947   }
85948 
85949 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85950   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85951   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85952   {
85953     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85954   }
85955 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85956 
85957 
85958   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85959   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85960   {
85961     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85962   }
85963 
85964 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85965   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85966   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85967   {
85968     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85969   }
85970 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85971 
85972 
85973   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85974   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85975   {
85976     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85977   }
85978 
85979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85980   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85981   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85982   {
85983     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85984   }
85985 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85986 
85987 
85988   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85989   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85990   {
85991     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85992   }
85993 
85994 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85995   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85996   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85997   {
85998     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85999   }
86000 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86001 
86002 
86003   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86004   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86005   {
86006     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86007   }
86008 
86009 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86010   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86011   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86012   {
86013     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86014   }
86015 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86016 
86017 
86018   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86019   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86020   {
86021     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86022   }
86023 
86024 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86025   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86026   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86027   {
86028     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86029   }
86030 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86031 
86032 
86033   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86034   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86035   {
86036     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86037   }
86038 
86039 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86040   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86041   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86042   {
86043     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86044   }
86045 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86046 
86047 
86048   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86049   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86050   {
86051     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86052   }
86053 
86054 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86055   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86056   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86057   {
86058     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86059   }
86060 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86061 
86062 
86063   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86064   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86065   {
86066     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86067   }
86068 
86069 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86070   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86071   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86072   {
86073     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86074   }
86075 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86076 
86077 
86078   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86079   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86080   {
86081     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86082   }
86083 
86084 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86085   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86086   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86087   {
86088     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86089   }
86090 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86091 
86092 
86093   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86094   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86095   {
86096     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86097   }
86098 
86099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86100   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86101   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86102   {
86103     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86104   }
86105 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86106 
86107 
86108   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86109   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86110   {
86111     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86112   }
86113 
86114 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86115   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86116   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86117   {
86118     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86119   }
86120 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86121 
86122 
86123   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86124   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86125   {
86126     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86127   }
86128 
86129 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86130   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86131   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86132   {
86133     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86134   }
86135 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86136 
86137 
86138   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86139   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86140   {
86141     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86142   }
86143 
86144 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86145   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86146   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86147   {
86148     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86149   }
86150 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86151 
86152 
86153   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86154   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86155   {
86156     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86157   }
86158 
86159 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86160   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86161   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86162   {
86163     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86164   }
86165 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86166 
86167 
86168   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86169   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86170   {
86171     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86172   }
86173 
86174 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86175   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86176   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86177   {
86178     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86179   }
86180 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86181 
86182 
86183   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86184   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86185   {
86186     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86187   }
86188 
86189 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86190   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86191   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86192   {
86193     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86194   }
86195 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86196 
86197 
86198   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86199   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86200   {
86201     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86202   }
86203 
86204 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86205   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86206   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86207   {
86208     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86209   }
86210 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86211 
86212 
86213   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86214   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86215   {
86216     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86217   }
86218 
86219 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86220   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86221   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86222   {
86223     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86224   }
86225 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86226 
86227 
86228   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86229   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86230   {
86231     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86232   }
86233 
86234 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86235   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86236   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86237   {
86238     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86239   }
86240 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86241 
86242 
86243   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86244   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86245   {
86246     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86247   }
86248 
86249 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86250   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86251   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86252   {
86253     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86254   }
86255 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86256 
86257 
86258   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86259   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86260   {
86261     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86262   }
86263 
86264 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86265   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86266   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86267   {
86268     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86269   }
86270 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86271 
86272   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86273   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86274   {
86275     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86276   }
86277 
86278 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86279   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86280   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86281   {
86282     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86283   }
86284 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86285 
86286 
86287   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86288   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86289   {
86290     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86291   }
86292 
86293 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86294   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86295   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86296   {
86297     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86298   }
86299 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86300 
86301 
86302   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86303   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86304   {
86305     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86306   }
86307 
86308 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86309   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86310   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86311   {
86312     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86313   }
86314 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86315 
86316 
86317   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86318   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86319   {
86320     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86321   }
86322 
86323 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86324   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86325   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86326   {
86327     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86328   }
86329 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86330 
86331 
86332   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86333   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86334   {
86335     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86336   }
86337 
86338 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86339   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86340   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86341   {
86342     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86343   }
86344 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86345 
86346 
86347   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86348   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86349   {
86350     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86351   }
86352 
86353 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86354   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86355   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86356   {
86357     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86358   }
86359 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86360 
86361 
86362   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86363   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86364   {
86365     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86366   }
86367 
86368 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86369   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86370   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86371   {
86372     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86373   }
86374 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86375 
86376 
86377   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86378   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86379   {
86380     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86381   }
86382 
86383 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86384   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86385   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86386   {
86387     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86388   }
86389 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86390 
86391 
86392   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86393   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86394   {
86395     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86396   }
86397 
86398 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86399   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86400   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86401   {
86402     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86403   }
86404 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86405 
86406 
86407   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86408   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86409   {
86410     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86411   }
86412 
86413 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86414   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86415   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86416   {
86417     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86418   }
86419 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86420 
86421 
86422 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86423   template <typename Dispatch>
waitIdle(Dispatch const & d) const86424   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86425   {
86426     return static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
86427   }
86428 #else
86429   template <typename Dispatch>
waitIdle(Dispatch const & d) const86430   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::waitIdle( Dispatch const & d ) const
86431   {
86432     Result result = static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
86433     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
86434   }
86435 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86436 
86437 
86438 
86439   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo,Dispatch const & d) const86440   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
86441   {
86442     return static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( pDisplayPowerInfo ) ) );
86443   }
86444 
86445 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86446   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayPowerInfoEXT & displayPowerInfo,Dispatch const & d) const86447   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d ) const
86448   {
86449     Result result = static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) );
86450     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
86451   }
86452 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86453 
86454 
86455   template <typename Dispatch>
flushMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const86456   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
86457   {
86458     return static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
86459   }
86460 
86461 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86462   template <typename Dispatch>
flushMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const86463   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
86464   {
86465     Result result = static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
86466     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
86467   }
86468 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86469 
86470 
86471   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const86472   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
86473   {
86474     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
86475   }
86476 
86477 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86478   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const86479   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
86480   {
86481     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
86482   }
86483 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86484 
86485 
86486   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const86487   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
86488   {
86489     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
86490   }
86491 
86492 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86493   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const86494   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
86495   {
86496     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
86497   }
86498 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86499 
86500 
86501   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const86502   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
86503   {
86504     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
86505   }
86506 
86507 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86508   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const86509   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
86510   {
86511     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) ) );
86512     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::freeDescriptorSets" );
86513   }
86514 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86515 
86516 
86517   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const86518   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
86519   {
86520     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
86521   }
86522 
86523 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86524   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const86525   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
86526   {
86527     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) ) );
86528     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::free" );
86529   }
86530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86531 
86532 
86533   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86534   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86535   {
86536     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86537   }
86538 
86539 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86540   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86541   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86542   {
86543     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86544   }
86545 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86546 
86547 
86548   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86549   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86550   {
86551     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86552   }
86553 
86554 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86555   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86556   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86557   {
86558     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86559   }
86560 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86561 
86562 
86563   template <typename Dispatch>
getAccelerationStructureBuildSizesKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pBuildInfo,const uint32_t * pMaxPrimitiveCounts,VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR * pSizeInfo,Dispatch const & d) const86564   VULKAN_HPP_INLINE void Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR* pSizeInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86565   {
86566     d.vkGetAccelerationStructureBuildSizesKHR( m_device, static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pBuildInfo ), pMaxPrimitiveCounts, reinterpret_cast< VkAccelerationStructureBuildSizesInfoKHR *>( pSizeInfo ) );
86567   }
86568 
86569 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86570   template <typename Dispatch>
getAccelerationStructureBuildSizesKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const AccelerationStructureBuildGeometryInfoKHR & buildInfo,ArrayProxy<const uint32_t> const & maxPrimitiveCounts,Dispatch const & d) const86571   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const AccelerationStructureBuildGeometryInfoKHR & buildInfo, ArrayProxy<const uint32_t> const & maxPrimitiveCounts, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
86572   {
86573 #ifdef VULKAN_HPP_NO_EXCEPTIONS
86574     VULKAN_HPP_ASSERT( maxPrimitiveCounts.size() == buildInfo.geometryCount );
86575 #else
86576     if ( maxPrimitiveCounts.size() != buildInfo.geometryCount )
86577     {
86578       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureBuildSizesKHR: maxPrimitiveCounts.size() != buildInfo.geometryCount" );
86579     }
86580 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
86581     VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo;
86582     d.vkGetAccelerationStructureBuildSizesKHR( m_device, static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( &buildInfo ), maxPrimitiveCounts.data(), reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( &sizeInfo ) );
86583     return sizeInfo;
86584   }
86585 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86586 
86587 
86588   template <typename Dispatch>
getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo,Dispatch const & d) const86589   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86590   {
86591     return static_cast<DeviceAddress>( d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( pInfo ) ) );
86592   }
86593 
86594 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86595   template <typename Dispatch>
getAccelerationStructureAddressKHR(const AccelerationStructureDeviceAddressInfoKHR & info,Dispatch const & d) const86596   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86597   {
86598     return d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( &info ) );
86599   }
86600 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86601 
86602 
86603   template <typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,size_t dataSize,void * pData,Dispatch const & d) const86604   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86605   {
86606     return static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), dataSize, pData ) );
86607   }
86608 
86609 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86610   template <typename T, typename Dispatch>
86611   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,ArrayProxy<T> const & data,Dispatch const & d) const86612   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getAccelerationStructureHandleNV(  VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, ArrayProxy<T> const &data, Dispatch const &d  ) const
86613   {
86614         Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
86615     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" );
86616 
86617   }
86618 
86619   template <typename T, typename Allocator, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,size_t dataSize,Dispatch const & d) const86620   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<T,Allocator>>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, Dispatch const & d ) const
86621   {
86622     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
86623     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
86624     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ) ) );
86625     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
86626   }
86627 
86628   template <typename T, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,Dispatch const & d) const86629   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Dispatch const & d ) const
86630   {
86631     T data;
86632     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), sizeof( T ), reinterpret_cast<void *>( &data ) ) );
86633     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
86634   }
86635 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86636 
86637 
86638   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements,Dispatch const & d) const86639   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86640   {
86641     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( pInfo ), reinterpret_cast< VkMemoryRequirements2KHR *>( pMemoryRequirements ) );
86642   }
86643 
86644 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86645   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const86646   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86647   {
86648     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
86649     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) );
86650     return memoryRequirements;
86651   }
86652 
86653   template <typename X, typename Y, typename... Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const86654   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86655   {
86656     StructureChain<X, Y, Z...> structureChain;
86657     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
86658     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) );
86659     return structureChain;
86660   }
86661 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86662 
86663 
86664 #ifdef VK_USE_PLATFORM_ANDROID_KHR
86665   template <typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer * buffer,VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties,Dispatch const & d) const86666   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
86667   {
86668     return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast< VkAndroidHardwareBufferPropertiesANDROID *>( pProperties ) ) );
86669   }
86670 
86671 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86672   template <typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const86673   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
86674   {
86675     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
86676     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
86677     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
86678   }
86679 
86680   template <typename X, typename Y, typename... Z, typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const86681   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
86682   {
86683     StructureChain<X, Y, Z...> structureChain;
86684     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
86685     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
86686     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
86687   }
86688 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86689 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
86690 
86691 
86692   template <typename Dispatch>
getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86693   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86694   {
86695     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
86696   }
86697 
86698 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86699   template <typename Dispatch>
getBufferAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const86700   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86701   {
86702     return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86703   }
86704 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86705 
86706   template <typename Dispatch>
getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86707   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86708   {
86709     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
86710   }
86711 
86712 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86713   template <typename Dispatch>
getBufferAddressEXT(const BufferDeviceAddressInfo & info,Dispatch const & d) const86714   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86715   {
86716     return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86717   }
86718 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86719 
86720   template <typename Dispatch>
getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86721   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86722   {
86723     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
86724   }
86725 
86726 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86727   template <typename Dispatch>
getBufferAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const86728   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86729   {
86730     return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86731   }
86732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86733 
86734 
86735   template <typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const86736   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86737   {
86738     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) );
86739   }
86740 
86741 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86742   template <typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,Dispatch const & d) const86743   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86744   {
86745     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
86746     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
86747     return memoryRequirements;
86748   }
86749 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86750 
86751 
86752   template <typename Dispatch>
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86753   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86754   {
86755     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86756   }
86757 
86758 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86759   template <typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const86760   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86761   {
86762     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86763     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86764     return memoryRequirements;
86765   }
86766 
86767   template <typename X, typename Y, typename... Z, typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const86768   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86769   {
86770     StructureChain<X, Y, Z...> structureChain;
86771     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86772     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86773     return structureChain;
86774   }
86775 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86776 
86777   template <typename Dispatch>
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86778   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86779   {
86780     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86781   }
86782 
86783 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86784   template <typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const86785   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86786   {
86787     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86788     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86789     return memoryRequirements;
86790   }
86791 
86792   template <typename X, typename Y, typename... Z, typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const86793   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86794   {
86795     StructureChain<X, Y, Z...> structureChain;
86796     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86797     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86798     return structureChain;
86799   }
86800 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86801 
86802 
86803   template <typename Dispatch>
getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86804   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86805   {
86806     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
86807   }
86808 
86809 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86810   template <typename Dispatch>
getBufferOpaqueCaptureAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const86811   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86812   {
86813     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86814   }
86815 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86816 
86817   template <typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86818   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86819   {
86820     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
86821   }
86822 
86823 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86824   template <typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const86825   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86826   {
86827     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86828   }
86829 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86830 
86831 
86832   template <typename Dispatch>
getCalibratedTimestampsEXT(uint32_t timestampCount,const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,Dispatch const & d) const86833   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
86834   {
86835     return static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
86836   }
86837 
86838 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86839   template <typename Dispatch>
86840   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,ArrayProxy<uint64_t> const & timestamps,Dispatch const & d) const86841   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
86842   {
86843     #ifdef VULKAN_HPP_NO_EXCEPTIONS
86844     VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() );
86845 #else
86846     if ( timestampInfos.size() != timestamps.size() )
86847     {
86848       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" );
86849     }
86850 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
86851     uint64_t maxDeviation;
86852     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
86853     return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" );
86854 
86855   }
86856 
86857   template <typename Uint64_tAllocator, typename Dispatch>
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,Dispatch const & d) const86858   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type Device::getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos, Dispatch const & d ) const
86859   {
86860     std::pair<std::vector<uint64_t, Uint64_tAllocator>,uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
86861     std::vector<uint64_t, Uint64_tAllocator> & timestamps = data.first;
86862     uint64_t & maxDeviation = data.second;
86863     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
86864     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
86865   }
86866 
86867   template <typename Uint64_tAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint64_t>::value, int>::type >
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,Uint64_tAllocator & uint64_tAllocator,Dispatch const & d) const86868   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type Device::getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos, Uint64_tAllocator & uint64_tAllocator, Dispatch const & d ) const
86869   {
86870     std::pair<std::vector<uint64_t, Uint64_tAllocator>,uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), std::forward_as_tuple( 0 ) );
86871     std::vector<uint64_t, Uint64_tAllocator> & timestamps = data.first;
86872     uint64_t & maxDeviation = data.second;
86873     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
86874     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
86875   }
86876 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86877 
86878 
86879   template <typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const86880   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86881   {
86882     return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
86883   }
86884 
86885 
86886 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86887   template <typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const86888   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86889   {
86890     return static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
86891   }
86892 #else
86893   template <typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const86894   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const
86895   {
86896     Result result = static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
86897     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getDeferredOperationResultKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
86898   }
86899 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86900 
86901 
86902 
86903   template <typename Dispatch>
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const86904   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86905   {
86906     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) );
86907   }
86908 
86909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86910   template <typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86911   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86912   {
86913     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
86914     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
86915     return support;
86916   }
86917 
86918   template <typename X, typename Y, typename... Z, typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86919   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86920   {
86921     StructureChain<X, Y, Z...> structureChain;
86922     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
86923     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
86924     return structureChain;
86925   }
86926 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86927 
86928   template <typename Dispatch>
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const86929   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86930   {
86931     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) );
86932   }
86933 
86934 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86935   template <typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86936   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86937   {
86938     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
86939     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
86940     return support;
86941   }
86942 
86943   template <typename X, typename Y, typename... Z, typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86944   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86945   {
86946     StructureChain<X, Y, Z...> structureChain;
86947     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
86948     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
86949     return structureChain;
86950   }
86951 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86952 
86953 
86954   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR * pVersionInfo,VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR * pCompatibility,Dispatch const & d) const86955   VULKAN_HPP_INLINE void Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR* pVersionInfo, VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR* pCompatibility, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86956   {
86957     d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( pVersionInfo ), reinterpret_cast< VkAccelerationStructureCompatibilityKHR *>( pCompatibility ) );
86958   }
86959 
86960 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86961   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const AccelerationStructureVersionInfoKHR & versionInfo,Dispatch const & d) const86962   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86963   {
86964     VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility;
86965     d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( &versionInfo ), reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>( &compatibility ) );
86966     return compatibility;
86967   }
86968 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86969 
86970 
86971   template <typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const86972   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
86973   {
86974     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) );
86975   }
86976 
86977 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86978   template <typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const86979   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86980   {
86981     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
86982     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) );
86983     return peerMemoryFeatures;
86984   }
86985 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86986 
86987   template <typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const86988   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
86989   {
86990     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) );
86991   }
86992 
86993 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86994   template <typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const86995   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86996   {
86997     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
86998     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) );
86999     return peerMemoryFeatures;
87000   }
87001 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87002 
87003 
87004   template <typename Dispatch>
getGroupPresentCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,Dispatch const & d) const87005   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87006   {
87007     return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast< VkDeviceGroupPresentCapabilitiesKHR *>( pDeviceGroupPresentCapabilities ) ) );
87008   }
87009 
87010 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87011   template <typename Dispatch>
getGroupPresentCapabilitiesKHR(Dispatch const & d) const87012   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type Device::getGroupPresentCapabilitiesKHR( Dispatch const & d ) const
87013   {
87014     VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
87015     Result result = static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) );
87016     return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" );
87017   }
87018 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87019 
87020 
87021 #ifdef VK_USE_PLATFORM_WIN32_KHR
87022   template <typename Dispatch>
getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const87023   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
87024   {
87025     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) );
87026   }
87027 
87028 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87029   template <typename Dispatch>
getGroupSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const87030   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
87031   {
87032     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
87033     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
87034     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" );
87035   }
87036 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87037 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87038 
87039 
87040   template <typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const87041   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
87042   {
87043     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) );
87044   }
87045 
87046 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87047   template <typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const87048   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
87049   {
87050     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
87051     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
87052     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" );
87053   }
87054 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87055 
87056 
87057   template <typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes,Dispatch const & d) const87058   VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87059   {
87060     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast< VkDeviceSize *>( pCommittedMemoryInBytes ) );
87061   }
87062 
87063 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87064   template <typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const87065   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87066   {
87067     VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
87068     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize *>( &committedMemoryInBytes ) );
87069     return committedMemoryInBytes;
87070   }
87071 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87072 
87073 
87074   template <typename Dispatch>
getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const87075   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87076   {
87077     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
87078   }
87079 
87080 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87081   template <typename Dispatch>
getMemoryOpaqueCaptureAddress(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const87082   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87083   {
87084     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
87085   }
87086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87087 
87088   template <typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const87089   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87090   {
87091     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
87092   }
87093 
87094 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87095   template <typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const87096   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87097   {
87098     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
87099   }
87100 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87101 
87102 
87103   template <typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const87104   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87105   {
87106     return d.vkGetDeviceProcAddr( m_device, pName );
87107   }
87108 
87109 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87110   template <typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const87111   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87112   {
87113     return d.vkGetDeviceProcAddr( m_device, name.c_str() );
87114   }
87115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87116 
87117 
87118   template <typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const87119   VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87120   {
87121     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast< VkQueue *>( pQueue ) );
87122   }
87123 
87124 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87125   template <typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,Dispatch const & d) const87126   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87127   {
87128     VULKAN_HPP_NAMESPACE::Queue queue;
87129     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( &queue ) );
87130     return queue;
87131   }
87132 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87133 
87134 
87135   template <typename Dispatch>
getQueue2(const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const87136   VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87137   {
87138     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2 *>( pQueueInfo ), reinterpret_cast< VkQueue *>( pQueue ) );
87139   }
87140 
87141 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87142   template <typename Dispatch>
getQueue2(const DeviceQueueInfo2 & queueInfo,Dispatch const & d) const87143   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87144   {
87145     VULKAN_HPP_NAMESPACE::Queue queue;
87146     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2 *>( &queueInfo ), reinterpret_cast<VkQueue *>( &queue ) );
87147     return queue;
87148   }
87149 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87150 
87151 
87152 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87153   template <typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const87154   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87155   {
87156     return static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
87157   }
87158 #else
87159   template <typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const87160   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
87161   {
87162     Result result = static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
87163     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } );
87164   }
87165 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87166 
87167 
87168 
87169   template <typename Dispatch>
getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const87170   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87171   {
87172     return static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
87173   }
87174 
87175 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87176   template <typename Dispatch>
getFenceFdKHR(const FenceGetFdInfoKHR & getFdInfo,Dispatch const & d) const87177   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
87178   {
87179     int fd;
87180     Result result = static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) );
87181     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" );
87182   }
87183 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87184 
87185 
87186 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87187   template <typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const87188   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87189   {
87190     return static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
87191   }
87192 #else
87193   template <typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const87194   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
87195   {
87196     Result result = static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
87197     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
87198   }
87199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87200 
87201 
87202 
87203 #ifdef VK_USE_PLATFORM_WIN32_KHR
87204   template <typename Dispatch>
getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const87205   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87206   {
87207     return static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
87208   }
87209 
87210 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87211   template <typename Dispatch>
getFenceWin32HandleKHR(const FenceGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const87212   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
87213   {
87214     HANDLE handle;
87215     Result result = static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
87216     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" );
87217   }
87218 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87219 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87220 
87221 
87222   template <typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const87223   VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87224   {
87225     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
87226   }
87227 
87228 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87229   template <typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const87230   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87231   {
87232     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
87233     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
87234     return memoryRequirements;
87235   }
87236 
87237   template <typename X, typename Y, typename... Z, typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const87238   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87239   {
87240     StructureChain<X, Y, Z...> structureChain;
87241     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
87242     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
87243     return structureChain;
87244   }
87245 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87246 
87247 
87248   template <typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties,Dispatch const & d) const87249   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87250   {
87251     return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast< VkImageDrmFormatModifierPropertiesEXT *>( pProperties ) ) );
87252   }
87253 
87254 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87255   template <typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const87256   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
87257   {
87258     VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
87259     Result result = static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) ) );
87260     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" );
87261   }
87262 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87263 
87264 
87265   template <typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const87266   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87267   {
87268     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) );
87269   }
87270 
87271 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87272   template <typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const87273   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87274   {
87275     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
87276     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
87277     return memoryRequirements;
87278   }
87279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87280 
87281 
87282   template <typename Dispatch>
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const87283   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87284   {
87285     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
87286   }
87287 
87288 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87289   template <typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const87290   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87291   {
87292     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
87293     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
87294     return memoryRequirements;
87295   }
87296 
87297   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const87298   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87299   {
87300     StructureChain<X, Y, Z...> structureChain;
87301     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
87302     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
87303     return structureChain;
87304   }
87305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87306 
87307   template <typename Dispatch>
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const87308   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87309   {
87310     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
87311   }
87312 
87313 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87314   template <typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const87315   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87316   {
87317     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
87318     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
87319     return memoryRequirements;
87320   }
87321 
87322   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const87323   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87324   {
87325     StructureChain<X, Y, Z...> structureChain;
87326     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
87327     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
87328     return structureChain;
87329   }
87330 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87331 
87332 
87333   template <typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements,Dispatch const & d) const87334   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
87335   {
87336     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements *>( pSparseMemoryRequirements ) );
87337   }
87338 
87339 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87340   template <typename SparseImageMemoryRequirementsAllocator, typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const87341   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
87342   {
87343     std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements;
87344     uint32_t sparseMemoryRequirementCount;
87345     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
87346     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
87347     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
87348     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
87349     return sparseMemoryRequirements;
87350   }
87351 
87352   template <typename SparseImageMemoryRequirementsAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements>::value, int>::type >
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator,Dispatch const & d) const87353   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d ) const
87354   {
87355     std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements( sparseImageMemoryRequirementsAllocator );
87356     uint32_t sparseMemoryRequirementCount;
87357     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
87358     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
87359     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
87360     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
87361     return sparseMemoryRequirements;
87362   }
87363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87364 
87365 
87366   template <typename Dispatch>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const87367   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
87368   {
87369     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
87370   }
87371 
87372 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87373   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const87374   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
87375   {
87376     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
87377     uint32_t sparseMemoryRequirementCount;
87378     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
87379     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
87380     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
87381     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
87382     return sparseMemoryRequirements;
87383   }
87384 
87385   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements2>::value, int>::type >
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,Dispatch const & d) const87386   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const
87387   {
87388     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator );
87389     uint32_t sparseMemoryRequirementCount;
87390     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
87391     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
87392     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
87393     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
87394     return sparseMemoryRequirements;
87395   }
87396 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87397 
87398   template <typename Dispatch>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const87399   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
87400   {
87401     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
87402   }
87403 
87404 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87405   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const87406   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
87407   {
87408     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
87409     uint32_t sparseMemoryRequirementCount;
87410     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
87411     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
87412     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
87413     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
87414     return sparseMemoryRequirements;
87415   }
87416 
87417   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements2>::value, int>::type >
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,Dispatch const & d) const87418   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const
87419   {
87420     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator );
87421     uint32_t sparseMemoryRequirementCount;
87422     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
87423     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
87424     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
87425     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
87426     return sparseMemoryRequirements;
87427   }
87428 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87429 
87430 
87431   template <typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout,Dispatch const & d) const87432   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
87433   {
87434     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource *>( pSubresource ), reinterpret_cast< VkSubresourceLayout *>( pLayout ) );
87435   }
87436 
87437 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87438   template <typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const ImageSubresource & subresource,Dispatch const & d) const87439   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87440   {
87441     VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
87442     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource *>( &subresource ), reinterpret_cast<VkSubresourceLayout *>( &layout ) );
87443     return layout;
87444   }
87445 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87446 
87447 
87448   template <typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties,Dispatch const & d) const87449   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
87450   {
87451     return static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast< VkImageViewAddressPropertiesNVX *>( pProperties ) ) );
87452   }
87453 
87454 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87455   template <typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,Dispatch const & d) const87456   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
87457   {
87458     VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
87459     Result result = static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) ) );
87460     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" );
87461   }
87462 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87463 
87464 
87465   template <typename Dispatch>
getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,Dispatch const & d) const87466   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87467   {
87468     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( pInfo ) );
87469   }
87470 
87471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87472   template <typename Dispatch>
getImageViewHandleNVX(const ImageViewHandleInfoNVX & info,Dispatch const & d) const87473   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87474   {
87475     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) );
87476   }
87477 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87478 
87479 
87480 #ifdef VK_USE_PLATFORM_ANDROID_KHR
87481   template <typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer,Dispatch const & d) const87482   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
87483   {
87484     return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( pInfo ), pBuffer ) );
87485   }
87486 
87487 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87488   template <typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const MemoryGetAndroidHardwareBufferInfoANDROID & info,Dispatch const & d) const87489   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<struct AHardwareBuffer*>::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d ) const
87490   {
87491     struct AHardwareBuffer* buffer;
87492     Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer ) );
87493     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" );
87494   }
87495 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87496 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
87497 
87498 
87499   template <typename Dispatch>
getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const87500   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87501   {
87502     return static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
87503   }
87504 
87505 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87506   template <typename Dispatch>
getMemoryFdKHR(const MemoryGetFdInfoKHR & getFdInfo,Dispatch const & d) const87507   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
87508   {
87509     int fd;
87510     Result result = static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) );
87511     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" );
87512   }
87513 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87514 
87515 
87516   template <typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties,Dispatch const & d) const87517   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
87518   {
87519     return static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast< VkMemoryFdPropertiesKHR *>( pMemoryFdProperties ) ) );
87520   }
87521 
87522 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87523   template <typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,Dispatch const & d) const87524   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
87525   {
87526     VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
87527     Result result = static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) ) );
87528     return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" );
87529   }
87530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87531 
87532 
87533   template <typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,Dispatch const & d) const87534   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
87535   {
87536     return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast< VkMemoryHostPointerPropertiesEXT *>( pMemoryHostPointerProperties ) ) );
87537   }
87538 
87539 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87540   template <typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,Dispatch const & d) const87541   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
87542   {
87543     VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
87544     Result result = static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) ) );
87545     return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" );
87546   }
87547 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87548 
87549 
87550 #ifdef VK_USE_PLATFORM_WIN32_KHR
87551   template <typename Dispatch>
getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const87552   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87553   {
87554     return static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
87555   }
87556 
87557 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87558   template <typename Dispatch>
getMemoryWin32HandleKHR(const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const87559   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
87560   {
87561     HANDLE handle;
87562     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
87563     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" );
87564   }
87565 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87566 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87567 
87568 
87569 #ifdef VK_USE_PLATFORM_WIN32_KHR
87570   template <typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle,Dispatch const & d) const87571   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
87572   {
87573     return static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), pHandle ) );
87574   }
87575 
87576 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87577   template <typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,Dispatch const & d) const87578   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
87579   {
87580     HANDLE handle;
87581     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
87582     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" );
87583   }
87584 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87585 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87586 
87587 
87588 #ifdef VK_USE_PLATFORM_WIN32_KHR
87589   template <typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,Dispatch const & d) const87590   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
87591   {
87592     return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast< VkMemoryWin32HandlePropertiesKHR *>( pMemoryWin32HandleProperties ) ) );
87593   }
87594 
87595 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87596   template <typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,Dispatch const & d) const87597   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
87598   {
87599     VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
87600     Result result = static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) ) );
87601     return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" );
87602   }
87603 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87604 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87605 
87606 
87607   template <typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings,Dispatch const & d) const87608   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
87609   {
87610     return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), pPresentationTimingCount, reinterpret_cast< VkPastPresentationTimingGOOGLE *>( pPresentationTimings ) ) );
87611   }
87612 
87613 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87614   template <typename PastPresentationTimingGOOGLEAllocator, typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87615   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
87616   {
87617     std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings;
87618     uint32_t presentationTimingCount;
87619     Result result;
87620     do
87621     {
87622       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
87623       if ( ( result == Result::eSuccess ) && presentationTimingCount )
87624       {
87625         presentationTimings.resize( presentationTimingCount );
87626         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
87627         VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
87628       }
87629     } while ( result == Result::eIncomplete );
87630     if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) )
87631     {
87632       presentationTimings.resize( presentationTimingCount );
87633     }
87634     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
87635   }
87636 
87637   template <typename PastPresentationTimingGOOGLEAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PastPresentationTimingGOOGLE>::value, int>::type >
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator,Dispatch const & d) const87638   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, Dispatch const & d ) const
87639   {
87640     std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings( pastPresentationTimingGOOGLEAllocator );
87641     uint32_t presentationTimingCount;
87642     Result result;
87643     do
87644     {
87645       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
87646       if ( ( result == Result::eSuccess ) && presentationTimingCount )
87647       {
87648         presentationTimings.resize( presentationTimingCount );
87649         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
87650         VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
87651       }
87652     } while ( result == Result::eIncomplete );
87653     if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) )
87654     {
87655       presentationTimings.resize( presentationTimingCount );
87656     }
87657     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
87658   }
87659 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87660 
87661 
87662   template <typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue,Dispatch const & d) const87663   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
87664   {
87665     return static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast< VkPerformanceValueINTEL *>( pValue ) ) );
87666   }
87667 
87668 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87669   template <typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,Dispatch const & d) const87670   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
87671   {
87672     VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
87673     Result result = static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( &value ) ) );
87674     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" );
87675   }
87676 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87677 
87678 
87679   template <typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,size_t * pDataSize,void * pData,Dispatch const & d) const87680   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
87681   {
87682     return static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
87683   }
87684 
87685 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87686   template <typename Uint8_tAllocator, typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Dispatch const & d) const87687   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const
87688   {
87689     std::vector<uint8_t, Uint8_tAllocator> data;
87690     size_t dataSize;
87691     Result result;
87692     do
87693     {
87694       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
87695       if ( ( result == Result::eSuccess ) && dataSize )
87696       {
87697         data.resize( dataSize );
87698         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
87699         VULKAN_HPP_ASSERT( dataSize <= data.size() );
87700       }
87701     } while ( result == Result::eIncomplete );
87702     if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) )
87703     {
87704       data.resize( dataSize );
87705     }
87706     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
87707   }
87708 
87709   template <typename Uint8_tAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type >
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const87710   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
87711   {
87712     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
87713     size_t dataSize;
87714     Result result;
87715     do
87716     {
87717       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
87718       if ( ( result == Result::eSuccess ) && dataSize )
87719       {
87720         data.resize( dataSize );
87721         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
87722         VULKAN_HPP_ASSERT( dataSize <= data.size() );
87723       }
87724     } while ( result == Result::eIncomplete );
87725     if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) )
87726     {
87727       data.resize( dataSize );
87728     }
87729     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
87730   }
87731 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87732 
87733 
87734   template <typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,Dispatch const & d) const87735   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
87736   {
87737     return static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast< VkPipelineExecutableInternalRepresentationKHR *>( pInternalRepresentations ) ) );
87738   }
87739 
87740 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87741   template <typename PipelineExecutableInternalRepresentationKHRAllocator, typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const87742   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const
87743   {
87744     std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator> internalRepresentations;
87745     uint32_t internalRepresentationCount;
87746     Result result;
87747     do
87748     {
87749       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr ) );
87750       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
87751       {
87752         internalRepresentations.resize( internalRepresentationCount );
87753         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
87754         VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
87755       }
87756     } while ( result == Result::eIncomplete );
87757     if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) )
87758     {
87759       internalRepresentations.resize( internalRepresentationCount );
87760     }
87761     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
87762   }
87763 
87764   template <typename PipelineExecutableInternalRepresentationKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type >
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator,Dispatch const & d) const87765   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, Dispatch const & d ) const
87766   {
87767     std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator> internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator );
87768     uint32_t internalRepresentationCount;
87769     Result result;
87770     do
87771     {
87772       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr ) );
87773       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
87774       {
87775         internalRepresentations.resize( internalRepresentationCount );
87776         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
87777         VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
87778       }
87779     } while ( result == Result::eIncomplete );
87780     if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) )
87781     {
87782       internalRepresentations.resize( internalRepresentationCount );
87783     }
87784     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
87785   }
87786 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87787 
87788 
87789   template <typename Dispatch>
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties,Dispatch const & d) const87790   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
87791   {
87792     return static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( pPipelineInfo ), pExecutableCount, reinterpret_cast< VkPipelineExecutablePropertiesKHR *>( pProperties ) ) );
87793   }
87794 
87795 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87796   template <typename PipelineExecutablePropertiesKHRAllocator, typename Dispatch>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Dispatch const & d) const87797   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d ) const
87798   {
87799     std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties;
87800     uint32_t executableCount;
87801     Result result;
87802     do
87803     {
87804       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
87805       if ( ( result == Result::eSuccess ) && executableCount )
87806       {
87807         properties.resize( executableCount );
87808         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
87809         VULKAN_HPP_ASSERT( executableCount <= properties.size() );
87810       }
87811     } while ( result == Result::eIncomplete );
87812     if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) )
87813     {
87814       properties.resize( executableCount );
87815     }
87816     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
87817   }
87818 
87819   template <typename PipelineExecutablePropertiesKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutablePropertiesKHR>::value, int>::type >
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator,Dispatch const & d) const87820   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, Dispatch const & d ) const
87821   {
87822     std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties( pipelineExecutablePropertiesKHRAllocator );
87823     uint32_t executableCount;
87824     Result result;
87825     do
87826     {
87827       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
87828       if ( ( result == Result::eSuccess ) && executableCount )
87829       {
87830         properties.resize( executableCount );
87831         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
87832         VULKAN_HPP_ASSERT( executableCount <= properties.size() );
87833       }
87834     } while ( result == Result::eIncomplete );
87835     if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) )
87836     {
87837       properties.resize( executableCount );
87838     }
87839     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
87840   }
87841 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87842 
87843 
87844   template <typename Dispatch>
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics,Dispatch const & d) const87845   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
87846   {
87847     return static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( pExecutableInfo ), pStatisticCount, reinterpret_cast< VkPipelineExecutableStatisticKHR *>( pStatistics ) ) );
87848   }
87849 
87850 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87851   template <typename PipelineExecutableStatisticKHRAllocator, typename Dispatch>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const87852   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const
87853   {
87854     std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics;
87855     uint32_t statisticCount;
87856     Result result;
87857     do
87858     {
87859       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
87860       if ( ( result == Result::eSuccess ) && statisticCount )
87861       {
87862         statistics.resize( statisticCount );
87863         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
87864         VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
87865       }
87866     } while ( result == Result::eIncomplete );
87867     if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) )
87868     {
87869       statistics.resize( statisticCount );
87870     }
87871     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
87872   }
87873 
87874   template <typename PipelineExecutableStatisticKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableStatisticKHR>::value, int>::type >
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator,Dispatch const & d) const87875   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, Dispatch const & d ) const
87876   {
87877     std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics( pipelineExecutableStatisticKHRAllocator );
87878     uint32_t statisticCount;
87879     Result result;
87880     do
87881     {
87882       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
87883       if ( ( result == Result::eSuccess ) && statisticCount )
87884       {
87885         statistics.resize( statisticCount );
87886         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
87887         VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
87888       }
87889     } while ( result == Result::eIncomplete );
87890     if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) )
87891     {
87892       statistics.resize( statisticCount );
87893     }
87894     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
87895   }
87896 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87897 
87898 
87899   template <typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t * pData,Dispatch const & d) const87900   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
87901   {
87902     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), pData );
87903   }
87904 
87905 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87906   template <typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Dispatch const & d) const87907   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87908   {
87909     uint64_t data;
87910     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), &data );
87911     return data;
87912   }
87913 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87914 
87915 
87916   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) const87917   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
87918   {
87919     return static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
87920   }
87921 
87922 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87923   template <typename T, typename Dispatch>
87924   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) const87925   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
87926   {
87927         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 ) ) );
87928     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } );
87929 
87930   }
87931 
87932   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) const87933   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
87934   {
87935     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87936     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87937     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 ) ) );
87938     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
87939   }
87940 
87941   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) const87942   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
87943   {
87944     T data;
87945     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 ) ) );
87946     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
87947   }
87948 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87949 
87950 
87951   template <typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const87952   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
87953   {
87954     return static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
87955   }
87956 
87957 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87958   template <typename T, typename Dispatch>
87959   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) const87960   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
87961   {
87962         Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
87963     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
87964 
87965   }
87966 
87967   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) const87968   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
87969   {
87970     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87971     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87972     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ) ) );
87973     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
87974   }
87975 
87976   template <typename T, typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const87977   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
87978   {
87979     T data;
87980     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
87981     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" );
87982   }
87983 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87984 
87985 
87986   template <typename Dispatch>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const87987   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
87988   {
87989     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
87990   }
87991 
87992 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87993   template <typename T, typename Dispatch>
87994   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) const87995   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
87996   {
87997         Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
87998     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesKHR" );
87999 
88000   }
88001 
88002   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) const88003   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
88004   {
88005     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
88006     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
88007     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ) ) );
88008     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" );
88009   }
88010 
88011   template <typename T, typename Dispatch>
getRayTracingShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const88012   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
88013   {
88014     T data;
88015     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
88016     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" );
88017   }
88018 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88019 
88020   template <typename Dispatch>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const88021   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
88022   {
88023     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
88024   }
88025 
88026 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88027   template <typename T, typename Dispatch>
88028   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) const88029   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
88030   {
88031         Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
88032     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" );
88033 
88034   }
88035 
88036   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) const88037   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
88038   {
88039     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
88040     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
88041     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ) ) );
88042     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" );
88043   }
88044 
88045   template <typename T, typename Dispatch>
getRayTracingShaderGroupHandleNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const88046   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
88047   {
88048     T data;
88049     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
88050     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" );
88051   }
88052 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88053 
88054 
88055   template <typename Dispatch>
getRayTracingShaderGroupStackSizeKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t group,VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader,Dispatch const & d) const88056   VULKAN_HPP_INLINE DeviceSize Device::getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88057   {
88058     return static_cast<DeviceSize>( d.vkGetRayTracingShaderGroupStackSizeKHR( m_device, static_cast<VkPipeline>( pipeline ), group, static_cast<VkShaderGroupShaderKHR>( groupShader ) ) );
88059   }
88060 
88061 
88062   template <typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,Dispatch const & d) const88063   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
88064   {
88065     return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast< VkRefreshCycleDurationGOOGLE *>( pDisplayTimingProperties ) ) );
88066   }
88067 
88068 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88069   template <typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const88070   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
88071   {
88072     VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
88073     Result result = static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) ) );
88074     return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" );
88075   }
88076 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88077 
88078 
88079   template <typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,Dispatch const & d) const88080   VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88081   {
88082     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast< VkExtent2D *>( pGranularity ) );
88083   }
88084 
88085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88086   template <typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Dispatch const & d) const88087   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88088   {
88089     VULKAN_HPP_NAMESPACE::Extent2D granularity;
88090     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D *>( &granularity ) );
88091     return granularity;
88092   }
88093 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88094 
88095 
88096   template <typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const88097   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88098   {
88099     return static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
88100   }
88101 
88102 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88103   template <typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const88104   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
88105   {
88106     uint64_t value;
88107     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
88108     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" );
88109   }
88110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88111 
88112   template <typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const88113   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88114   {
88115     return static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
88116   }
88117 
88118 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88119   template <typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const88120   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
88121   {
88122     uint64_t value;
88123     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
88124     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" );
88125   }
88126 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88127 
88128 
88129   template <typename Dispatch>
getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const88130   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88131   {
88132     return static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
88133   }
88134 
88135 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88136   template <typename Dispatch>
getSemaphoreFdKHR(const SemaphoreGetFdInfoKHR & getFdInfo,Dispatch const & d) const88137   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
88138   {
88139     int fd;
88140     Result result = static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) );
88141     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" );
88142   }
88143 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88144 
88145 
88146 #ifdef VK_USE_PLATFORM_WIN32_KHR
88147   template <typename Dispatch>
getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const88148   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88149   {
88150     return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
88151   }
88152 
88153 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88154   template <typename Dispatch>
getSemaphoreWin32HandleKHR(const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const88155   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
88156   {
88157     HANDLE handle;
88158     Result result = static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
88159     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" );
88160   }
88161 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88162 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
88163 
88164 
88165   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) const88166   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
88167   {
88168     return static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), pInfoSize, pInfo ) );
88169   }
88170 
88171 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88172   template <typename Uint8_tAllocator, typename Dispatch>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Dispatch const & d) const88173   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const & d ) const
88174   {
88175     std::vector<uint8_t, Uint8_tAllocator> info;
88176     size_t infoSize;
88177     Result result;
88178     do
88179     {
88180       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
88181       if ( ( result == Result::eSuccess ) && infoSize )
88182       {
88183         info.resize( infoSize );
88184         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() ) ) );
88185         VULKAN_HPP_ASSERT( infoSize <= info.size() );
88186       }
88187     } while ( result == Result::eIncomplete );
88188     if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) )
88189     {
88190       info.resize( infoSize );
88191     }
88192     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
88193   }
88194 
88195   template <typename Uint8_tAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type >
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const88196   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
88197   {
88198     std::vector<uint8_t, Uint8_tAllocator> info( uint8_tAllocator );
88199     size_t infoSize;
88200     Result result;
88201     do
88202     {
88203       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
88204       if ( ( result == Result::eSuccess ) && infoSize )
88205       {
88206         info.resize( infoSize );
88207         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() ) ) );
88208         VULKAN_HPP_ASSERT( infoSize <= info.size() );
88209       }
88210     } while ( result == Result::eIncomplete );
88211     if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) )
88212     {
88213       info.resize( infoSize );
88214     }
88215     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
88216   }
88217 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88218 
88219 
88220   template <typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue,Dispatch const & d) const88221   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
88222   {
88223     return static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), pCounterValue ) );
88224   }
88225 
88226 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88227   template <typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,Dispatch const & d) const88228   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
88229   {
88230     uint64_t counterValue;
88231     Result result = static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
88232     return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" );
88233   }
88234 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88235 
88236 
88237   template <typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VULKAN_HPP_NAMESPACE::Image * pSwapchainImages,Dispatch const & d) const88238   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
88239   {
88240     return static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), pSwapchainImageCount, reinterpret_cast< VkImage *>( pSwapchainImages ) ) );
88241   }
88242 
88243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88244   template <typename ImageAllocator, typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const88245   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image, ImageAllocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
88246   {
88247     std::vector<Image, ImageAllocator> swapchainImages;
88248     uint32_t swapchainImageCount;
88249     Result result;
88250     do
88251     {
88252       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
88253       if ( ( result == Result::eSuccess ) && swapchainImageCount )
88254       {
88255         swapchainImages.resize( swapchainImageCount );
88256         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
88257         VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
88258       }
88259     } while ( result == Result::eIncomplete );
88260     if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) )
88261     {
88262       swapchainImages.resize( swapchainImageCount );
88263     }
88264     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
88265   }
88266 
88267   template <typename ImageAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Image>::value, int>::type >
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,ImageAllocator & imageAllocator,Dispatch const & d) const88268   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image, ImageAllocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d ) const
88269   {
88270     std::vector<Image, ImageAllocator> swapchainImages( imageAllocator );
88271     uint32_t swapchainImageCount;
88272     Result result;
88273     do
88274     {
88275       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
88276       if ( ( result == Result::eSuccess ) && swapchainImageCount )
88277       {
88278         swapchainImages.resize( swapchainImageCount );
88279         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
88280         VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
88281       }
88282     } while ( result == Result::eIncomplete );
88283     if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) )
88284     {
88285       swapchainImages.resize( swapchainImageCount );
88286     }
88287     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
88288   }
88289 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88290 
88291 
88292 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88293   template <typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const88294   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88295   {
88296     return static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
88297   }
88298 #else
88299   template <typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const88300   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
88301   {
88302     Result result = static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
88303     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainStatusKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
88304   }
88305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88306 
88307 
88308 
88309   template <typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,size_t * pDataSize,void * pData,Dispatch const & d) const88310   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
88311   {
88312     return static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
88313   }
88314 
88315 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88316   template <typename Uint8_tAllocator, typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Dispatch const & d) const88317   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d ) const
88318   {
88319     std::vector<uint8_t, Uint8_tAllocator> data;
88320     size_t dataSize;
88321     Result result;
88322     do
88323     {
88324       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
88325       if ( ( result == Result::eSuccess ) && dataSize )
88326       {
88327         data.resize( dataSize );
88328         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
88329         VULKAN_HPP_ASSERT( dataSize <= data.size() );
88330       }
88331     } while ( result == Result::eIncomplete );
88332     if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) )
88333     {
88334       data.resize( dataSize );
88335     }
88336     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
88337   }
88338 
88339   template <typename Uint8_tAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type >
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const88340   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
88341   {
88342     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
88343     size_t dataSize;
88344     Result result;
88345     do
88346     {
88347       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
88348       if ( ( result == Result::eSuccess ) && dataSize )
88349       {
88350         data.resize( dataSize );
88351         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
88352         VULKAN_HPP_ASSERT( dataSize <= data.size() );
88353       }
88354     } while ( result == Result::eIncomplete );
88355     if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) )
88356     {
88357       data.resize( dataSize );
88358     }
88359     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
88360   }
88361 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88362 
88363 
88364   template <typename Dispatch>
importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo,Dispatch const & d) const88365   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88366   {
88367     return static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( pImportFenceFdInfo ) ) );
88368   }
88369 
88370 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88371   template <typename Dispatch>
importFenceFdKHR(const ImportFenceFdInfoKHR & importFenceFdInfo,Dispatch const & d) const88372   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const
88373   {
88374     Result result = static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) );
88375     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
88376   }
88377 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88378 
88379 
88380 #ifdef VK_USE_PLATFORM_WIN32_KHR
88381   template <typename Dispatch>
importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,Dispatch const & d) const88382   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88383   {
88384     return static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( pImportFenceWin32HandleInfo ) ) );
88385   }
88386 
88387 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88388   template <typename Dispatch>
importFenceWin32HandleKHR(const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo,Dispatch const & d) const88389   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d ) const
88390   {
88391     Result result = static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) );
88392     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
88393   }
88394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88395 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
88396 
88397 
88398   template <typename Dispatch>
importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,Dispatch const & d) const88399   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88400   {
88401     return static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( pImportSemaphoreFdInfo ) ) );
88402   }
88403 
88404 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88405   template <typename Dispatch>
importSemaphoreFdKHR(const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo,Dispatch const & d) const88406   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const
88407   {
88408     Result result = static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) );
88409     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
88410   }
88411 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88412 
88413 
88414 #ifdef VK_USE_PLATFORM_WIN32_KHR
88415   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,Dispatch const & d) const88416   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88417   {
88418     return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( pImportSemaphoreWin32HandleInfo ) ) );
88419   }
88420 
88421 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88422   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,Dispatch const & d) const88423   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d ) const
88424   {
88425     Result result = static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) );
88426     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
88427   }
88428 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88429 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
88430 
88431 
88432   template <typename Dispatch>
initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo,Dispatch const & d) const88433   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88434   {
88435     return static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( pInitializeInfo ) ) );
88436   }
88437 
88438 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88439   template <typename Dispatch>
initializePerformanceApiINTEL(const InitializePerformanceApiInfoINTEL & initializeInfo,Dispatch const & d) const88440   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d ) const
88441   {
88442     Result result = static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) );
88443     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
88444   }
88445 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88446 
88447 
88448   template <typename Dispatch>
invalidateMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const88449   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
88450   {
88451     return static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
88452   }
88453 
88454 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88455   template <typename Dispatch>
invalidateMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const88456   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
88457   {
88458     Result result = static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
88459     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
88460   }
88461 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88462 
88463 
88464   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) const88465   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
88466   {
88467     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 ) );
88468   }
88469 
88470 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88471   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) const88472   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
88473   {
88474     void* pData;
88475     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 ) );
88476     return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" );
88477   }
88478 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88479 
88480 
88481   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches,Dispatch const & d) const88482   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
88483   {
88484     return static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCacheCount, reinterpret_cast<const VkPipelineCache *>( pSrcCaches ) ) );
88485   }
88486 
88487 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88488   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches,Dispatch const & d) const88489   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
88490   {
88491     Result result = static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size(), reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) );
88492     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" );
88493   }
88494 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88495 
88496 
88497   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches,Dispatch const & d) const88498   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
88499   {
88500     return static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCacheCount, reinterpret_cast<const VkValidationCacheEXT *>( pSrcCaches ) ) );
88501   }
88502 
88503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88504   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches,Dispatch const & d) const88505   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
88506   {
88507     Result result = static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size(), reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) );
88508     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" );
88509   }
88510 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88511 
88512 
88513   template <typename Dispatch>
registerEventEXT(const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT * pDeviceEventInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const88514   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88515   {
88516     return static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT *>( pDeviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) );
88517   }
88518 
88519 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88520   template <typename Dispatch>
registerEventEXT(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88521   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88522   {
88523     VULKAN_HPP_NAMESPACE::Fence fence;
88524     Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
88525     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" );
88526   }
88527 
88528 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88529   template <typename Dispatch>
registerEventEXTUnique(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88530   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type Device::registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88531   {
88532     VULKAN_HPP_NAMESPACE::Fence fence;
88533     Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
88534     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
88535     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique", deleter );
88536   }
88537 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88539 
88540 
88541   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) const88542   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88543   {
88544     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 ) ) );
88545   }
88546 
88547 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88548   template <typename Dispatch>
registerDisplayEventEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88549   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
88550   {
88551     VULKAN_HPP_NAMESPACE::Fence fence;
88552     Result result = static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
88553     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" );
88554   }
88555 
88556 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88557   template <typename Dispatch>
registerDisplayEventEXTUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88558   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88559   {
88560     VULKAN_HPP_NAMESPACE::Fence fence;
88561     Result result = static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
88562     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
88563     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique", deleter );
88564   }
88565 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88566 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88567 
88568 
88569 #ifdef VK_USE_PLATFORM_WIN32_KHR
88570 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88571   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const88572   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88573   {
88574     return static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
88575   }
88576 #else
88577   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const88578   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
88579   {
88580     Result result = static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
88581     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" );
88582   }
88583 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88584 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
88585 
88586 
88587 
88588 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88589   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const88590   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88591   {
88592     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
88593   }
88594 #else
88595   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const88596   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
88597   {
88598     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
88599     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" );
88600   }
88601 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88602 
88603 
88604 
88605 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88606   template <typename Dispatch>
release(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const88607   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88608   {
88609     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
88610   }
88611 #else
88612   template <typename Dispatch>
release(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const88613   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
88614   {
88615     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
88616     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" );
88617   }
88618 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88619 
88620 
88621 
88622   template <typename Dispatch>
releaseProfilingLockKHR(Dispatch const & d) const88623   VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88624   {
88625     d.vkReleaseProfilingLockKHR( m_device );
88626   }
88627 
88628 
88629 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88630   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const88631   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
88632   {
88633     return static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
88634   }
88635 #else
88636   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const88637   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const
88638   {
88639     Result result = static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
88640     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" );
88641   }
88642 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88643 
88644 
88645 
88646 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88647   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const88648   VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88649   {
88650     return static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
88651   }
88652 #else
88653   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const88654   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d ) const
88655   {
88656     Result result = static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
88657     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetDescriptorPool" );
88658   }
88659 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88660 
88661 
88662 
88663 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88664   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const88665   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88666   {
88667     return static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
88668   }
88669 #else
88670   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const88671   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
88672   {
88673     Result result = static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
88674     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" );
88675   }
88676 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88677 
88678 
88679 
88680   template <typename Dispatch>
resetFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,Dispatch const & d) const88681   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
88682   {
88683     return static_cast<Result>( d.vkResetFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ) ) );
88684   }
88685 
88686 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88687   template <typename Dispatch>
resetFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,Dispatch const & d) const88688   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d ) const
88689   {
88690     Result result = static_cast<Result>( d.vkResetFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) );
88691     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
88692   }
88693 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88694 
88695 
88696   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const88697   VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88698   {
88699     d.vkResetQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
88700   }
88701 
88702   template <typename Dispatch>
resetQueryPoolEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const88703   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88704   {
88705     d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
88706   }
88707 
88708 
88709   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo,Dispatch const & d) const88710   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88711   {
88712     return static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( pNameInfo ) ) );
88713   }
88714 
88715 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88716   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const DebugUtilsObjectNameInfoEXT & nameInfo,Dispatch const & d) const88717   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
88718   {
88719     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) );
88720     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
88721   }
88722 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88723 
88724 
88725   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo,Dispatch const & d) const88726   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88727   {
88728     return static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( pTagInfo ) ) );
88729   }
88730 
88731 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88732   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const DebugUtilsObjectTagInfoEXT & tagInfo,Dispatch const & d) const88733   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
88734   {
88735     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) );
88736     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
88737   }
88738 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88739 
88740 
88741 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88742   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const88743   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88744   {
88745     return static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
88746   }
88747 #else
88748   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const88749   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
88750   {
88751     Result result = static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
88752     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" );
88753   }
88754 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88755 
88756 
88757 
88758   template <typename Dispatch>
setHdrMetadataEXT(uint32_t swapchainCount,const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata,Dispatch const & d) const88759   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
88760   {
88761     d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast<const VkSwapchainKHR *>( pSwapchains ), reinterpret_cast<const VkHdrMetadataEXT *>( pMetadata ) );
88762   }
88763 
88764 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88765   template <typename Dispatch>
setHdrMetadataEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains,ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata,Dispatch const & d) const88766   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
88767   {
88768 #ifdef VULKAN_HPP_NO_EXCEPTIONS
88769     VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
88770 #else
88771     if ( swapchains.size() != metadata.size() )
88772   {
88773     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
88774   }
88775 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
88776 
88777     d.vkSetHdrMetadataEXT( m_device, swapchains.size(), reinterpret_cast<const VkSwapchainKHR *>( swapchains.data() ), reinterpret_cast<const VkHdrMetadataEXT *>( metadata.data() ) );
88778   }
88779 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88780 
88781 
88782   template <typename Dispatch>
setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain,VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable,Dispatch const & d) const88783   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88784   {
88785     d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
88786   }
88787 
88788 
88789 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88790   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const88791   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
88792   {
88793     return static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
88794   }
88795 #else
88796   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const88797   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
88798   {
88799     Result result = static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
88800     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
88801   }
88802 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88803 
88804 
88805 
88806   template <typename Dispatch>
signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const88807   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88808   {
88809     return static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
88810   }
88811 
88812 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88813   template <typename Dispatch>
signalSemaphore(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const88814   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
88815   {
88816     Result result = static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
88817     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
88818   }
88819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88820 
88821   template <typename Dispatch>
signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const88822   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88823   {
88824     return static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
88825   }
88826 
88827 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88828   template <typename Dispatch>
signalSemaphoreKHR(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const88829   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
88830   {
88831     Result result = static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
88832     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
88833   }
88834 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88835 
88836 
88837   template <typename Dispatch>
trimCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const88838   VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88839   {
88840     d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
88841   }
88842 
88843   template <typename Dispatch>
trimCommandPoolKHR(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const88844   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88845   {
88846     d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
88847   }
88848 
88849 
88850   template <typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const88851   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88852   {
88853     d.vkUninitializePerformanceApiINTEL( m_device );
88854   }
88855 
88856 
88857   template <typename Dispatch>
unmapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const88858   VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88859   {
88860     d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
88861   }
88862 
88863 
88864   template <typename Dispatch>
updateDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const88865   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
88866   {
88867     d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
88868   }
88869 
88870   template <typename Dispatch>
updateDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const88871   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
88872   {
88873     d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
88874   }
88875 
88876 
88877   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) const88878   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
88879   {
88880     d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast<const VkCopyDescriptorSet *>( pDescriptorCopies ) );
88881   }
88882 
88883 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88884   template <typename Dispatch>
updateDescriptorSets(ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies,Dispatch const & d) const88885   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
88886   {
88887     d.vkUpdateDescriptorSets( m_device, descriptorWrites.size(), reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ), descriptorCopies.size(), reinterpret_cast<const VkCopyDescriptorSet *>( descriptorCopies.data() ) );
88888   }
88889 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88890 
88891 
88892   template <typename Dispatch>
waitForFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const88893   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
88894   {
88895     return static_cast<Result>( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
88896   }
88897 
88898 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88899   template <typename Dispatch>
waitForFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const88900   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
88901   {
88902     Result result = static_cast<Result>( d.vkWaitForFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
88903     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
88904   }
88905 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88906 
88907 
88908   template <typename Dispatch>
waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const88909   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
88910   {
88911     return static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
88912   }
88913 
88914 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88915   template <typename Dispatch>
waitSemaphores(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const88916   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
88917   {
88918     Result result = static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
88919     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
88920   }
88921 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88922 
88923   template <typename Dispatch>
waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const88924   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
88925   {
88926     return static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
88927   }
88928 
88929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88930   template <typename Dispatch>
waitSemaphoresKHR(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const88931   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
88932   {
88933     Result result = static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
88934     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
88935   }
88936 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88937 
88938 
88939   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) const88940   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
88941   {
88942     return static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), dataSize, pData, stride ) );
88943   }
88944 
88945 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88946   template <typename T, typename Dispatch>
88947   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,ArrayProxy<T> const & data,size_t stride,Dispatch const & d) const88948   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
88949   {
88950         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 ) );
88951     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::writeAccelerationStructuresPropertiesKHR" );
88952 
88953   }
88954 
88955   template <typename T, typename Allocator, typename Dispatch>
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,size_t stride,Dispatch const & d) const88956   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<T,Allocator>>::type Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride, Dispatch const & d ) const
88957   {
88958     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
88959     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
88960     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 ) );
88961     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" );
88962   }
88963 
88964   template <typename T, typename Dispatch>
writeAccelerationStructuresPropertyKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t stride,Dispatch const & d) const88965   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::writeAccelerationStructuresPropertyKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride, Dispatch const & d ) const
88966   {
88967     T data;
88968     Result result = static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), sizeof( T ), reinterpret_cast<void *>( &data ), stride ) );
88969     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" );
88970   }
88971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88972 
88973 
88974 #ifdef VK_USE_PLATFORM_ANDROID_KHR
88975   template <typename Dispatch>
createAndroidSurfaceKHR(const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88976   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
88977   {
88978     return static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88979   }
88980 
88981 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88982   template <typename Dispatch>
createAndroidSurfaceKHR(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88983   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
88984   {
88985     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88986     Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88987     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" );
88988   }
88989 
88990 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88991   template <typename Dispatch>
createAndroidSurfaceKHRUnique(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88992   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88993   {
88994     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88995     Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88996     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88997     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique", deleter );
88998   }
88999 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89000 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89001 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
89002 
89003 
89004   template <typename Dispatch>
createDebugReportCallbackEXT(const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback,Dispatch const & d) const89005   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89006   {
89007     return static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDebugReportCallbackEXT *>( pCallback ) ) );
89008   }
89009 
89010 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89011   template <typename Dispatch>
createDebugReportCallbackEXT(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89012   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89013   {
89014     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
89015     Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
89016     return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" );
89017   }
89018 
89019 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89020   template <typename Dispatch>
createDebugReportCallbackEXTUnique(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89021   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89022   {
89023     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
89024     Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
89025     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89026     return createResultValue<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique", deleter );
89027   }
89028 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89029 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89030 
89031 
89032   template <typename Dispatch>
createDebugUtilsMessengerEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger,Dispatch const & d) const89033   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89034   {
89035     return static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDebugUtilsMessengerEXT *>( pMessenger ) ) );
89036   }
89037 
89038 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89039   template <typename Dispatch>
createDebugUtilsMessengerEXT(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89040   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89041   {
89042     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
89043     Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
89044     return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" );
89045   }
89046 
89047 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89048   template <typename Dispatch>
createDebugUtilsMessengerEXTUnique(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89049   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89050   {
89051     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
89052     Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
89053     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89054     return createResultValue<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique", deleter );
89055   }
89056 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89057 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89058 
89059 
89060 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
89061   template <typename Dispatch>
createDirectFBSurfaceEXT(const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89062   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
89063   {
89064     return static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89065   }
89066 
89067 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89068   template <typename Dispatch>
createDirectFBSurfaceEXT(const DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89069   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
89070   {
89071     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89072     Result result = static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89073     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" );
89074   }
89075 
89076 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89077   template <typename Dispatch>
createDirectFBSurfaceEXTUnique(const DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89078   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89079   {
89080     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89081     Result result = static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89082     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89083     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique", deleter );
89084   }
89085 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89087 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
89088 
89089 
89090   template <typename Dispatch>
createDisplayPlaneSurfaceKHR(const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89091   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
89092   {
89093     return static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89094   }
89095 
89096 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89097   template <typename Dispatch>
createDisplayPlaneSurfaceKHR(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89098   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
89099   {
89100     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89101     Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89102     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" );
89103   }
89104 
89105 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89106   template <typename Dispatch>
createDisplayPlaneSurfaceKHRUnique(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89107   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89108   {
89109     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89110     Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89111     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89112     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique", deleter );
89113   }
89114 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89116 
89117 
89118   template <typename Dispatch>
createHeadlessSurfaceEXT(const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89119   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
89120   {
89121     return static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89122   }
89123 
89124 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89125   template <typename Dispatch>
createHeadlessSurfaceEXT(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89126   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
89127   {
89128     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89129     Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89130     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" );
89131   }
89132 
89133 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89134   template <typename Dispatch>
createHeadlessSurfaceEXTUnique(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89135   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89136   {
89137     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89138     Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89139     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89140     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique", deleter );
89141   }
89142 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89143 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89144 
89145 
89146 #ifdef VK_USE_PLATFORM_IOS_MVK
89147   template <typename Dispatch>
createIOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89148   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
89149   {
89150     return static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89151   }
89152 
89153 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89154   template <typename Dispatch>
createIOSSurfaceMVK(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89155   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
89156   {
89157     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89158     Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89159     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" );
89160   }
89161 
89162 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89163   template <typename Dispatch>
createIOSSurfaceMVKUnique(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89164   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89165   {
89166     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89167     Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89168     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89169     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique", deleter );
89170   }
89171 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89172 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89173 #endif /*VK_USE_PLATFORM_IOS_MVK*/
89174 
89175 
89176 #ifdef VK_USE_PLATFORM_FUCHSIA
89177   template <typename Dispatch>
createImagePipeSurfaceFUCHSIA(const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89178   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
89179   {
89180     return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89181   }
89182 
89183 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89184   template <typename Dispatch>
createImagePipeSurfaceFUCHSIA(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89185   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
89186   {
89187     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89188     Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89189     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" );
89190   }
89191 
89192 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89193   template <typename Dispatch>
createImagePipeSurfaceFUCHSIAUnique(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89194   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89195   {
89196     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89197     Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89198     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89199     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter );
89200   }
89201 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89202 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89203 #endif /*VK_USE_PLATFORM_FUCHSIA*/
89204 
89205 
89206 #ifdef VK_USE_PLATFORM_MACOS_MVK
89207   template <typename Dispatch>
createMacOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89208   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
89209   {
89210     return static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89211   }
89212 
89213 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89214   template <typename Dispatch>
createMacOSSurfaceMVK(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89215   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
89216   {
89217     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89218     Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89219     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" );
89220   }
89221 
89222 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89223   template <typename Dispatch>
createMacOSSurfaceMVKUnique(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89224   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89225   {
89226     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89227     Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89228     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89229     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique", deleter );
89230   }
89231 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89232 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89233 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
89234 
89235 
89236 #ifdef VK_USE_PLATFORM_METAL_EXT
89237   template <typename Dispatch>
createMetalSurfaceEXT(const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89238   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
89239   {
89240     return static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89241   }
89242 
89243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89244   template <typename Dispatch>
createMetalSurfaceEXT(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89245   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
89246   {
89247     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89248     Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89249     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" );
89250   }
89251 
89252 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89253   template <typename Dispatch>
createMetalSurfaceEXTUnique(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89254   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89255   {
89256     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89257     Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89258     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89259     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique", deleter );
89260   }
89261 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89262 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89263 #endif /*VK_USE_PLATFORM_METAL_EXT*/
89264 
89265 
89266 #ifdef VK_USE_PLATFORM_SCREEN_QNX
89267   template <typename Dispatch>
createScreenSurfaceQNX(const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89268   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createScreenSurfaceQNX( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89269   {
89270     return static_cast<Result>( d.vkCreateScreenSurfaceQNX( m_instance, reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89271   }
89272 
89273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89274   template <typename Dispatch>
createScreenSurfaceQNX(const ScreenSurfaceCreateInfoQNX & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89275   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createScreenSurfaceQNX( const ScreenSurfaceCreateInfoQNX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89276   {
89277     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89278     Result result = static_cast<Result>( d.vkCreateScreenSurfaceQNX( m_instance, reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89279     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNX" );
89280   }
89281 
89282 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89283   template <typename Dispatch>
createScreenSurfaceQNXUnique(const ScreenSurfaceCreateInfoQNX & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89284   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createScreenSurfaceQNXUnique( const ScreenSurfaceCreateInfoQNX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89285   {
89286     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89287     Result result = static_cast<Result>( d.vkCreateScreenSurfaceQNX( m_instance, reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89288     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89289     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNXUnique", deleter );
89290   }
89291 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89292 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89293 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
89294 
89295 
89296 #ifdef VK_USE_PLATFORM_GGP
89297   template <typename Dispatch>
createStreamDescriptorSurfaceGGP(const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89298   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
89299   {
89300     return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89301   }
89302 
89303 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89304   template <typename Dispatch>
createStreamDescriptorSurfaceGGP(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89305   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
89306   {
89307     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89308     Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89309     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" );
89310   }
89311 
89312 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89313   template <typename Dispatch>
createStreamDescriptorSurfaceGGPUnique(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89314   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89315   {
89316     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89317     Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89318     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89319     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique", deleter );
89320   }
89321 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89322 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89323 #endif /*VK_USE_PLATFORM_GGP*/
89324 
89325 
89326 #ifdef VK_USE_PLATFORM_VI_NN
89327   template <typename Dispatch>
createViSurfaceNN(const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89328   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
89329   {
89330     return static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89331   }
89332 
89333 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89334   template <typename Dispatch>
createViSurfaceNN(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89335   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
89336   {
89337     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89338     Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89339     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" );
89340   }
89341 
89342 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89343   template <typename Dispatch>
createViSurfaceNNUnique(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89344   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89345   {
89346     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89347     Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89348     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89349     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique", deleter );
89350   }
89351 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89352 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89353 #endif /*VK_USE_PLATFORM_VI_NN*/
89354 
89355 
89356 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
89357   template <typename Dispatch>
createWaylandSurfaceKHR(const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89358   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
89359   {
89360     return static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89361   }
89362 
89363 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89364   template <typename Dispatch>
createWaylandSurfaceKHR(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89365   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
89366   {
89367     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89368     Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89369     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" );
89370   }
89371 
89372 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89373   template <typename Dispatch>
createWaylandSurfaceKHRUnique(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89374   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89375   {
89376     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89377     Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89378     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89379     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique", deleter );
89380   }
89381 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89383 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
89384 
89385 
89386 #ifdef VK_USE_PLATFORM_WIN32_KHR
89387   template <typename Dispatch>
createWin32SurfaceKHR(const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89388   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
89389   {
89390     return static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89391   }
89392 
89393 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89394   template <typename Dispatch>
createWin32SurfaceKHR(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89395   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
89396   {
89397     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89398     Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89399     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" );
89400   }
89401 
89402 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89403   template <typename Dispatch>
createWin32SurfaceKHRUnique(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89404   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89405   {
89406     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89407     Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89408     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89409     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique", deleter );
89410   }
89411 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89413 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89414 
89415 
89416 #ifdef VK_USE_PLATFORM_XCB_KHR
89417   template <typename Dispatch>
createXcbSurfaceKHR(const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89418   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
89419   {
89420     return static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89421   }
89422 
89423 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89424   template <typename Dispatch>
createXcbSurfaceKHR(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89425   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
89426   {
89427     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89428     Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89429     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" );
89430   }
89431 
89432 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89433   template <typename Dispatch>
createXcbSurfaceKHRUnique(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89434   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89435   {
89436     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89437     Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89438     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89439     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique", deleter );
89440   }
89441 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89443 #endif /*VK_USE_PLATFORM_XCB_KHR*/
89444 
89445 
89446 #ifdef VK_USE_PLATFORM_XLIB_KHR
89447   template <typename Dispatch>
createXlibSurfaceKHR(const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89448   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
89449   {
89450     return static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89451   }
89452 
89453 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89454   template <typename Dispatch>
createXlibSurfaceKHR(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89455   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
89456   {
89457     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89458     Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89459     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" );
89460   }
89461 
89462 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89463   template <typename Dispatch>
createXlibSurfaceKHRUnique(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89464   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89465   {
89466     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89467     Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89468     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89469     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique", deleter );
89470   }
89471 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89472 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89473 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
89474 
89475 
89476   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) const89477   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
89478   {
89479     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
89480   }
89481 
89482 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89483   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) const89484   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
89485   {
89486     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() );
89487   }
89488 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89489 
89490 
89491   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89492   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89493   {
89494     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89495   }
89496 
89497 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89498   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89499   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89500   {
89501     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89502   }
89503 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89504 
89505 
89506   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89507   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89508   {
89509     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89510   }
89511 
89512 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89513   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89514   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89515   {
89516     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89517   }
89518 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89519 
89520 
89521   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89522   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89523   {
89524     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89525   }
89526 
89527 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89528   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89529   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89530   {
89531     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89532   }
89533 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89534 
89535 
89536   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89537   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89538   {
89539     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89540   }
89541 
89542 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89543   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89544   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89545   {
89546     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89547   }
89548 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89549 
89550 
89551   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89552   VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89553   {
89554     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89555   }
89556 
89557 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89558   template <typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89559   VULKAN_HPP_INLINE void Instance::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89560   {
89561     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89562   }
89563 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89564 
89565 
89566   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89567   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89568   {
89569     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89570   }
89571 
89572 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89573   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89574   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89575   {
89576     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89577   }
89578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89579 
89580 
89581   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89582   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89583   {
89584     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89585   }
89586 
89587 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89588   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89589   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89590   {
89591     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89592   }
89593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89594 
89595 
89596   template <typename Dispatch>
enumeratePhysicalDeviceGroups(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const89597   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89598   {
89599     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast< VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) );
89600   }
89601 
89602 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89603   template <typename PhysicalDeviceGroupPropertiesAllocator, typename Dispatch>
enumeratePhysicalDeviceGroups(Dispatch const & d) const89604   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type Instance::enumeratePhysicalDeviceGroups( Dispatch const & d ) const
89605   {
89606     std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
89607     uint32_t physicalDeviceGroupCount;
89608     Result result;
89609     do
89610     {
89611       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
89612       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
89613       {
89614         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89615         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
89616         VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
89617       }
89618     } while ( result == Result::eIncomplete );
89619     if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) )
89620     {
89621       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89622     }
89623     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
89624   }
89625 
89626   template <typename PhysicalDeviceGroupPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type >
enumeratePhysicalDeviceGroups(PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator,Dispatch const & d) const89627   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type Instance::enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
89628   {
89629     std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties( physicalDeviceGroupPropertiesAllocator );
89630     uint32_t physicalDeviceGroupCount;
89631     Result result;
89632     do
89633     {
89634       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
89635       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
89636       {
89637         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89638         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
89639         VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
89640       }
89641     } while ( result == Result::eIncomplete );
89642     if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) )
89643     {
89644       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89645     }
89646     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
89647   }
89648 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89649 
89650   template <typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const89651   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89652   {
89653     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast< VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) );
89654   }
89655 
89656 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89657   template <typename PhysicalDeviceGroupPropertiesAllocator, typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(Dispatch const & d) const89658   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR( Dispatch const & d ) const
89659   {
89660     std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
89661     uint32_t physicalDeviceGroupCount;
89662     Result result;
89663     do
89664     {
89665       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
89666       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
89667       {
89668         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89669         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
89670         VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
89671       }
89672     } while ( result == Result::eIncomplete );
89673     if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) )
89674     {
89675       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89676     }
89677     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
89678   }
89679 
89680   template <typename PhysicalDeviceGroupPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type >
enumeratePhysicalDeviceGroupsKHR(PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator,Dispatch const & d) const89681   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
89682   {
89683     std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties( physicalDeviceGroupPropertiesAllocator );
89684     uint32_t physicalDeviceGroupCount;
89685     Result result;
89686     do
89687     {
89688       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
89689       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
89690       {
89691         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89692         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
89693         VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
89694       }
89695     } while ( result == Result::eIncomplete );
89696     if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) )
89697     {
89698       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89699     }
89700     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
89701   }
89702 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89703 
89704 
89705   template <typename Dispatch>
enumeratePhysicalDevices(uint32_t * pPhysicalDeviceCount,VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices,Dispatch const & d) const89706   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89707   {
89708     return static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast< VkPhysicalDevice *>( pPhysicalDevices ) ) );
89709   }
89710 
89711 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89712   template <typename PhysicalDeviceAllocator, typename Dispatch>
enumeratePhysicalDevices(Dispatch const & d) const89713   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type Instance::enumeratePhysicalDevices( Dispatch const & d ) const
89714   {
89715     std::vector<PhysicalDevice, PhysicalDeviceAllocator> physicalDevices;
89716     uint32_t physicalDeviceCount;
89717     Result result;
89718     do
89719     {
89720       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
89721       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
89722       {
89723         physicalDevices.resize( physicalDeviceCount );
89724         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
89725         VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
89726       }
89727     } while ( result == Result::eIncomplete );
89728     if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) )
89729     {
89730       physicalDevices.resize( physicalDeviceCount );
89731     }
89732     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
89733   }
89734 
89735   template <typename PhysicalDeviceAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDevice>::value, int>::type >
enumeratePhysicalDevices(PhysicalDeviceAllocator & physicalDeviceAllocator,Dispatch const & d) const89736   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type Instance::enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d ) const
89737   {
89738     std::vector<PhysicalDevice, PhysicalDeviceAllocator> physicalDevices( physicalDeviceAllocator );
89739     uint32_t physicalDeviceCount;
89740     Result result;
89741     do
89742     {
89743       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
89744       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
89745       {
89746         physicalDevices.resize( physicalDeviceCount );
89747         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
89748         VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
89749       }
89750     } while ( result == Result::eIncomplete );
89751     if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) )
89752     {
89753       physicalDevices.resize( physicalDeviceCount );
89754     }
89755     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
89756   }
89757 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89758 
89759 
89760   template <typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const89761   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89762   {
89763     return d.vkGetInstanceProcAddr( m_instance, pName );
89764   }
89765 
89766 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89767   template <typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const89768   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89769   {
89770     return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
89771   }
89772 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89773 
89774 
89775   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData,Dispatch const & d) const89776   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
89777   {
89778     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( pCallbackData ) );
89779   }
89780 
89781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89782   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const DebugUtilsMessengerCallbackDataEXT & callbackData,Dispatch const & d) const89783   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
89784   {
89785     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( &callbackData ) );
89786   }
89787 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89788 
89789 
89790 #ifdef VK_USE_PLATFORM_WIN32_KHR
89791 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
89792   template <typename Dispatch>
acquireWinrtDisplayNV(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89793   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89794   {
89795     return static_cast<Result>( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
89796   }
89797 #else
89798   template <typename Dispatch>
acquireWinrtDisplayNV(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89799   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
89800   {
89801     Result result = static_cast<Result>( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
89802     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireWinrtDisplayNV" );
89803   }
89804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89805 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89806 
89807 
89808 
89809 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
89810   template <typename Dispatch>
acquireXlibDisplayEXT(Display * dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89811   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89812   {
89813     return static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast<VkDisplayKHR>( display ) ) );
89814   }
89815 
89816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89817   template <typename Dispatch>
acquireXlibDisplayEXT(Display & dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89818   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
89819   {
89820     Result result = static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
89821     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
89822   }
89823 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89824 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
89825 
89826 
89827   template <typename Dispatch>
createDevice(const VULKAN_HPP_NAMESPACE::DeviceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Device * pDevice,Dispatch const & d) const89828   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
89829   {
89830     return static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDevice *>( pDevice ) ) );
89831   }
89832 
89833 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89834   template <typename Dispatch>
createDevice(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89835   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
89836   {
89837     VULKAN_HPP_NAMESPACE::Device device;
89838     Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice *>( &device ) ) );
89839     return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" );
89840   }
89841 
89842 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89843   template <typename Dispatch>
createDeviceUnique(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89844   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Device, Dispatch>>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89845   {
89846     VULKAN_HPP_NAMESPACE::Device device;
89847     Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice *>( &device ) ) );
89848     ObjectDestroy<NoParent, Dispatch> deleter( allocator, d );
89849     return createResultValue<VULKAN_HPP_NAMESPACE::Device, Dispatch>( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique", deleter );
89850   }
89851 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89852 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89853 
89854 
89855   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) const89856   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
89857   {
89858     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 ) ) );
89859   }
89860 
89861 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89862   template <typename Dispatch>
createDisplayModeKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89863   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
89864   {
89865     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
89866     Result result = static_cast<Result>( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
89867     return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" );
89868   }
89869 
89870 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89871   template <typename Dispatch>
createDisplayModeKHRUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89872   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>>::type PhysicalDevice::createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89873   {
89874     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
89875     Result result = static_cast<Result>( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
89876     ObjectDestroy<PhysicalDevice, Dispatch> deleter( *this, allocator, d );
89877     return createResultValue<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique", deleter );
89878   }
89879 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89880 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89881 
89882 
89883   template <typename Dispatch>
enumerateDeviceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d) const89884   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
89885   {
89886     return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast< VkExtensionProperties *>( pProperties ) ) );
89887   }
89888 
89889 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89890   template <typename ExtensionPropertiesAllocator, typename Dispatch>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d) const89891   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Dispatch const & d ) const
89892   {
89893     std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties;
89894     uint32_t propertyCount;
89895     Result result;
89896     do
89897     {
89898       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
89899       if ( ( result == Result::eSuccess ) && propertyCount )
89900       {
89901         properties.resize( propertyCount );
89902         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
89903         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89904       }
89905     } while ( result == Result::eIncomplete );
89906     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89907     {
89908       properties.resize( propertyCount );
89909     }
89910     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
89911   }
89912 
89913   template <typename ExtensionPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type >
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,ExtensionPropertiesAllocator & extensionPropertiesAllocator,Dispatch const & d) const89914   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d ) const
89915   {
89916     std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
89917     uint32_t propertyCount;
89918     Result result;
89919     do
89920     {
89921       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
89922       if ( ( result == Result::eSuccess ) && propertyCount )
89923       {
89924         properties.resize( propertyCount );
89925         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
89926         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89927       }
89928     } while ( result == Result::eIncomplete );
89929     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89930     {
89931       properties.resize( propertyCount );
89932     }
89933     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
89934   }
89935 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89936 
89937 
89938   template <typename Dispatch>
enumerateDeviceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d) const89939   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89940   {
89941     return static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast< VkLayerProperties *>( pProperties ) ) );
89942   }
89943 
89944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89945   template <typename LayerPropertiesAllocator, typename Dispatch>
enumerateDeviceLayerProperties(Dispatch const & d) const89946   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type PhysicalDevice::enumerateDeviceLayerProperties( Dispatch const & d ) const
89947   {
89948     std::vector<LayerProperties, LayerPropertiesAllocator> properties;
89949     uint32_t propertyCount;
89950     Result result;
89951     do
89952     {
89953       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
89954       if ( ( result == Result::eSuccess ) && propertyCount )
89955       {
89956         properties.resize( propertyCount );
89957         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
89958         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89959       }
89960     } while ( result == Result::eIncomplete );
89961     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89962     {
89963       properties.resize( propertyCount );
89964     }
89965     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
89966   }
89967 
89968   template <typename LayerPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type >
enumerateDeviceLayerProperties(LayerPropertiesAllocator & layerPropertiesAllocator,Dispatch const & d) const89969   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type PhysicalDevice::enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) const
89970   {
89971     std::vector<LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
89972     uint32_t propertyCount;
89973     Result result;
89974     do
89975     {
89976       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
89977       if ( ( result == Result::eSuccess ) && propertyCount )
89978       {
89979         properties.resize( propertyCount );
89980         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
89981         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89982       }
89983     } while ( result == Result::eIncomplete );
89984     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89985     {
89986       properties.resize( propertyCount );
89987     }
89988     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
89989   }
89990 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89991 
89992 
89993   template <typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,uint32_t * pCounterCount,VULKAN_HPP_NAMESPACE::PerformanceCounterKHR * pCounters,VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions,Dispatch const & d) const89994   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
89995   {
89996     return static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, pCounterCount, reinterpret_cast< VkPerformanceCounterKHR *>( pCounters ), reinterpret_cast< VkPerformanceCounterDescriptionKHR *>( pCounterDescriptions ) ) );
89997   }
89998 
89999 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90000   template <typename Allocator, typename Dispatch>
90001   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) const90002   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
90003   {
90004         std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions;
90005     uint32_t counterCount;
90006     Result result;
90007     do
90008     {
90009       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
90010       if ( ( result == Result::eSuccess ) && counterCount )
90011       {
90012         counterDescriptions.resize( counterCount );
90013         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
90014       }
90015     } while ( result == Result::eIncomplete );
90016     if ( result == Result::eSuccess )
90017     {
90018       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
90019       counterDescriptions.resize( counterCount );
90020     }
90021     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
90022 
90023   }
90024 
90025   template <typename Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PerformanceCounterDescriptionKHR>::value, int>::type>
90026   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) const90027   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
90028   {
90029         std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions( vectorAllocator );
90030     uint32_t counterCount;
90031     Result result;
90032     do
90033     {
90034       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
90035       if ( ( result == Result::eSuccess ) && counterCount )
90036       {
90037         counterDescriptions.resize( counterCount );
90038         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
90039       }
90040     } while ( result == Result::eIncomplete );
90041     if ( result == Result::eSuccess )
90042     {
90043       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
90044       counterDescriptions.resize( counterCount );
90045     }
90046     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
90047 
90048   }
90049 
90050   template <typename PerformanceCounterKHRAllocator, typename PerformanceCounterDescriptionKHRAllocator, typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,Dispatch const & d) const90051   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
90052   {
90053     std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>> data;
90054     std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator> & counters = data.first;
90055     std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data.second;
90056     uint32_t counterCount;
90057     Result result;
90058     do
90059     {
90060       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
90061       if ( ( result == Result::eSuccess ) && counterCount )
90062       {
90063         counters.resize( counterCount );
90064         counterDescriptions.resize( counterCount );
90065         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
90066         VULKAN_HPP_ASSERT( counterCount <= counters.size() );
90067       }
90068     } while ( result == Result::eIncomplete );
90069     if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) )
90070     {
90071       counters.resize( counterCount );
90072       counterDescriptions.resize( counterCount );
90073     }
90074     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
90075   }
90076 
90077   template <typename PerformanceCounterKHRAllocator, typename PerformanceCounterDescriptionKHRAllocator, typename Dispatch, typename B1, typename B2, typename std::enable_if<std::is_same<typename B1::value_type, PerformanceCounterKHR>::value && std::is_same<typename B2::value_type, PerformanceCounterDescriptionKHR>::value, int>::type >
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,PerformanceCounterKHRAllocator & performanceCounterKHRAllocator,PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator,Dispatch const & d) const90078   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, Dispatch const & d ) const
90079   {
90080     std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>> data( std::piecewise_construct, std::forward_as_tuple( performanceCounterKHRAllocator ), std::forward_as_tuple( performanceCounterDescriptionKHRAllocator ) );
90081     std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator> & counters = data.first;
90082     std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data.second;
90083     uint32_t counterCount;
90084     Result result;
90085     do
90086     {
90087       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
90088       if ( ( result == Result::eSuccess ) && counterCount )
90089       {
90090         counters.resize( counterCount );
90091         counterDescriptions.resize( counterCount );
90092         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
90093         VULKAN_HPP_ASSERT( counterCount <= counters.size() );
90094       }
90095     } while ( result == Result::eIncomplete );
90096     if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) )
90097     {
90098       counters.resize( counterCount );
90099       counterDescriptions.resize( counterCount );
90100     }
90101     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
90102   }
90103 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90104 
90105 
90106   template <typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties,Dispatch const & d) const90107   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
90108   {
90109     return static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast< VkDisplayModeProperties2KHR *>( pProperties ) ) );
90110   }
90111 
90112 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90113   template <typename DisplayModeProperties2KHRAllocator, typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const90114   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
90115   {
90116     std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties;
90117     uint32_t propertyCount;
90118     Result result;
90119     do
90120     {
90121       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
90122       if ( ( result == Result::eSuccess ) && propertyCount )
90123       {
90124         properties.resize( propertyCount );
90125         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
90126         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90127       }
90128     } while ( result == Result::eIncomplete );
90129     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90130     {
90131       properties.resize( propertyCount );
90132     }
90133     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
90134   }
90135 
90136   template <typename DisplayModeProperties2KHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayModeProperties2KHR>::value, int>::type >
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator,Dispatch const & d) const90137   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, Dispatch const & d ) const
90138   {
90139     std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties( displayModeProperties2KHRAllocator );
90140     uint32_t propertyCount;
90141     Result result;
90142     do
90143     {
90144       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
90145       if ( ( result == Result::eSuccess ) && propertyCount )
90146       {
90147         properties.resize( propertyCount );
90148         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
90149         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90150       }
90151     } while ( result == Result::eIncomplete );
90152     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90153     {
90154       properties.resize( propertyCount );
90155     }
90156     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
90157   }
90158 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90159 
90160 
90161   template <typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties,Dispatch const & d) const90162   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
90163   {
90164     return static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast< VkDisplayModePropertiesKHR *>( pProperties ) ) );
90165   }
90166 
90167 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90168   template <typename DisplayModePropertiesKHRAllocator, typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const90169   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
90170   {
90171     std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties;
90172     uint32_t propertyCount;
90173     Result result;
90174     do
90175     {
90176       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
90177       if ( ( result == Result::eSuccess ) && propertyCount )
90178       {
90179         properties.resize( propertyCount );
90180         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
90181         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90182       }
90183     } while ( result == Result::eIncomplete );
90184     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90185     {
90186       properties.resize( propertyCount );
90187     }
90188     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
90189   }
90190 
90191   template <typename DisplayModePropertiesKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayModePropertiesKHR>::value, int>::type >
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator,Dispatch const & d) const90192   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, Dispatch const & d ) const
90193   {
90194     std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties( displayModePropertiesKHRAllocator );
90195     uint32_t propertyCount;
90196     Result result;
90197     do
90198     {
90199       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
90200       if ( ( result == Result::eSuccess ) && propertyCount )
90201       {
90202         properties.resize( propertyCount );
90203         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
90204         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90205       }
90206     } while ( result == Result::eIncomplete );
90207     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90208     {
90209       properties.resize( propertyCount );
90210     }
90211     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
90212   }
90213 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90214 
90215 
90216   template <typename Dispatch>
getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR * pDisplayPlaneInfo,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities,Dispatch const & d) const90217   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
90218   {
90219     return static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( pDisplayPlaneInfo ), reinterpret_cast< VkDisplayPlaneCapabilities2KHR *>( pCapabilities ) ) );
90220   }
90221 
90222 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90223   template <typename Dispatch>
getDisplayPlaneCapabilities2KHR(const DisplayPlaneInfo2KHR & displayPlaneInfo,Dispatch const & d) const90224   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
90225   {
90226     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
90227     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) ) );
90228     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
90229   }
90230 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90231 
90232 
90233   template <typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities,Dispatch const & d) const90234   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
90235   {
90236     return static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast< VkDisplayPlaneCapabilitiesKHR *>( pCapabilities ) ) );
90237   }
90238 
90239 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90240   template <typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,Dispatch const & d) const90241   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
90242   {
90243     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
90244     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) ) );
90245     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
90246   }
90247 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90248 
90249 
90250   template <typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,uint32_t * pDisplayCount,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays,Dispatch const & d) const90251   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
90252   {
90253     return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast< VkDisplayKHR *>( pDisplays ) ) );
90254   }
90255 
90256 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90257   template <typename DisplayKHRAllocator, typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Dispatch const & d) const90258   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d ) const
90259   {
90260     std::vector<DisplayKHR, DisplayKHRAllocator> displays;
90261     uint32_t displayCount;
90262     Result result;
90263     do
90264     {
90265       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
90266       if ( ( result == Result::eSuccess ) && displayCount )
90267       {
90268         displays.resize( displayCount );
90269         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
90270         VULKAN_HPP_ASSERT( displayCount <= displays.size() );
90271       }
90272     } while ( result == Result::eIncomplete );
90273     if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) )
90274     {
90275       displays.resize( displayCount );
90276     }
90277     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
90278   }
90279 
90280   template <typename DisplayKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayKHR>::value, int>::type >
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,DisplayKHRAllocator & displayKHRAllocator,Dispatch const & d) const90281   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d ) const
90282   {
90283     std::vector<DisplayKHR, DisplayKHRAllocator> displays( displayKHRAllocator );
90284     uint32_t displayCount;
90285     Result result;
90286     do
90287     {
90288       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
90289       if ( ( result == Result::eSuccess ) && displayCount )
90290       {
90291         displays.resize( displayCount );
90292         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
90293         VULKAN_HPP_ASSERT( displayCount <= displays.size() );
90294       }
90295     } while ( result == Result::eIncomplete );
90296     if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) )
90297     {
90298       displays.resize( displayCount );
90299     }
90300     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
90301   }
90302 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90303 
90304 
90305   template <typename Dispatch>
getCalibrateableTimeDomainsEXT(uint32_t * pTimeDomainCount,VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains,Dispatch const & d) const90306   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90307   {
90308     return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast< VkTimeDomainEXT *>( pTimeDomains ) ) );
90309   }
90310 
90311 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90312   template <typename TimeDomainEXTAllocator, typename Dispatch>
getCalibrateableTimeDomainsEXT(Dispatch const & d) const90313   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT( Dispatch const & d ) const
90314   {
90315     std::vector<TimeDomainEXT, TimeDomainEXTAllocator> timeDomains;
90316     uint32_t timeDomainCount;
90317     Result result;
90318     do
90319     {
90320       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
90321       if ( ( result == Result::eSuccess ) && timeDomainCount )
90322       {
90323         timeDomains.resize( timeDomainCount );
90324         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( timeDomains.data() ) ) );
90325         VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
90326       }
90327     } while ( result == Result::eIncomplete );
90328     if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) )
90329     {
90330       timeDomains.resize( timeDomainCount );
90331     }
90332     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
90333   }
90334 
90335   template <typename TimeDomainEXTAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, TimeDomainEXT>::value, int>::type >
getCalibrateableTimeDomainsEXT(TimeDomainEXTAllocator & timeDomainEXTAllocator,Dispatch const & d) const90336   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d ) const
90337   {
90338     std::vector<TimeDomainEXT, TimeDomainEXTAllocator> timeDomains( timeDomainEXTAllocator );
90339     uint32_t timeDomainCount;
90340     Result result;
90341     do
90342     {
90343       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
90344       if ( ( result == Result::eSuccess ) && timeDomainCount )
90345       {
90346         timeDomains.resize( timeDomainCount );
90347         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( timeDomains.data() ) ) );
90348         VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
90349       }
90350     } while ( result == Result::eIncomplete );
90351     if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) )
90352     {
90353       timeDomains.resize( timeDomainCount );
90354     }
90355     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
90356   }
90357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90358 
90359 
90360   template <typename Dispatch>
getCooperativeMatrixPropertiesNV(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties,Dispatch const & d) const90361   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90362   {
90363     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast< VkCooperativeMatrixPropertiesNV *>( pProperties ) ) );
90364   }
90365 
90366 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90367   template <typename CooperativeMatrixPropertiesNVAllocator, typename Dispatch>
getCooperativeMatrixPropertiesNV(Dispatch const & d) const90368   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV( Dispatch const & d ) const
90369   {
90370     std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties;
90371     uint32_t propertyCount;
90372     Result result;
90373     do
90374     {
90375       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
90376       if ( ( result == Result::eSuccess ) && propertyCount )
90377       {
90378         properties.resize( propertyCount );
90379         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
90380         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90381       }
90382     } while ( result == Result::eIncomplete );
90383     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90384     {
90385       properties.resize( propertyCount );
90386     }
90387     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
90388   }
90389 
90390   template <typename CooperativeMatrixPropertiesNVAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CooperativeMatrixPropertiesNV>::value, int>::type >
getCooperativeMatrixPropertiesNV(CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator,Dispatch const & d) const90391   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d ) const
90392   {
90393     std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties( cooperativeMatrixPropertiesNVAllocator );
90394     uint32_t propertyCount;
90395     Result result;
90396     do
90397     {
90398       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
90399       if ( ( result == Result::eSuccess ) && propertyCount )
90400       {
90401         properties.resize( propertyCount );
90402         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
90403         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90404       }
90405     } while ( result == Result::eIncomplete );
90406     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90407     {
90408       properties.resize( propertyCount );
90409     }
90410     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
90411   }
90412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90413 
90414 
90415 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
90416   template <typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB * dfb,Dispatch const & d) const90417   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90418   {
90419     return static_cast<Bool32>( d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, dfb ) );
90420   }
90421 
90422 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90423   template <typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB & dfb,Dispatch const & d) const90424   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90425   {
90426     return d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb );
90427   }
90428 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90429 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
90430 
90431 
90432   template <typename Dispatch>
getDisplayPlaneProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties,Dispatch const & d) const90433   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90434   {
90435     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPlaneProperties2KHR *>( pProperties ) ) );
90436   }
90437 
90438 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90439   template <typename DisplayPlaneProperties2KHRAllocator, typename Dispatch>
getDisplayPlaneProperties2KHR(Dispatch const & d) const90440   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR( Dispatch const & d ) const
90441   {
90442     std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties;
90443     uint32_t propertyCount;
90444     Result result;
90445     do
90446     {
90447       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
90448       if ( ( result == Result::eSuccess ) && propertyCount )
90449       {
90450         properties.resize( propertyCount );
90451         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
90452         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90453       }
90454     } while ( result == Result::eIncomplete );
90455     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90456     {
90457       properties.resize( propertyCount );
90458     }
90459     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
90460   }
90461 
90462   template <typename DisplayPlaneProperties2KHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlaneProperties2KHR>::value, int>::type >
getDisplayPlaneProperties2KHR(DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator,Dispatch const & d) const90463   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d ) const
90464   {
90465     std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties( displayPlaneProperties2KHRAllocator );
90466     uint32_t propertyCount;
90467     Result result;
90468     do
90469     {
90470       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
90471       if ( ( result == Result::eSuccess ) && propertyCount )
90472       {
90473         properties.resize( propertyCount );
90474         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
90475         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90476       }
90477     } while ( result == Result::eIncomplete );
90478     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90479     {
90480       properties.resize( propertyCount );
90481     }
90482     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
90483   }
90484 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90485 
90486 
90487   template <typename Dispatch>
getDisplayPlanePropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties,Dispatch const & d) const90488   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90489   {
90490     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPlanePropertiesKHR *>( pProperties ) ) );
90491   }
90492 
90493 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90494   template <typename DisplayPlanePropertiesKHRAllocator, typename Dispatch>
getDisplayPlanePropertiesKHR(Dispatch const & d) const90495   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR( Dispatch const & d ) const
90496   {
90497     std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties;
90498     uint32_t propertyCount;
90499     Result result;
90500     do
90501     {
90502       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
90503       if ( ( result == Result::eSuccess ) && propertyCount )
90504       {
90505         properties.resize( propertyCount );
90506         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
90507         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90508       }
90509     } while ( result == Result::eIncomplete );
90510     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90511     {
90512       properties.resize( propertyCount );
90513     }
90514     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
90515   }
90516 
90517   template <typename DisplayPlanePropertiesKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlanePropertiesKHR>::value, int>::type >
getDisplayPlanePropertiesKHR(DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator,Dispatch const & d) const90518   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d ) const
90519   {
90520     std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties( displayPlanePropertiesKHRAllocator );
90521     uint32_t propertyCount;
90522     Result result;
90523     do
90524     {
90525       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
90526       if ( ( result == Result::eSuccess ) && propertyCount )
90527       {
90528         properties.resize( propertyCount );
90529         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
90530         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90531       }
90532     } while ( result == Result::eIncomplete );
90533     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90534     {
90535       properties.resize( propertyCount );
90536     }
90537     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
90538   }
90539 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90540 
90541 
90542   template <typename Dispatch>
getDisplayProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties,Dispatch const & d) const90543   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90544   {
90545     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayProperties2KHR *>( pProperties ) ) );
90546   }
90547 
90548 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90549   template <typename DisplayProperties2KHRAllocator, typename Dispatch>
getDisplayProperties2KHR(Dispatch const & d) const90550   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type PhysicalDevice::getDisplayProperties2KHR( Dispatch const & d ) const
90551   {
90552     std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties;
90553     uint32_t propertyCount;
90554     Result result;
90555     do
90556     {
90557       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
90558       if ( ( result == Result::eSuccess ) && propertyCount )
90559       {
90560         properties.resize( propertyCount );
90561         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
90562         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90563       }
90564     } while ( result == Result::eIncomplete );
90565     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90566     {
90567       properties.resize( propertyCount );
90568     }
90569     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
90570   }
90571 
90572   template <typename DisplayProperties2KHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayProperties2KHR>::value, int>::type >
getDisplayProperties2KHR(DisplayProperties2KHRAllocator & displayProperties2KHRAllocator,Dispatch const & d) const90573   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type PhysicalDevice::getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d ) const
90574   {
90575     std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties( displayProperties2KHRAllocator );
90576     uint32_t propertyCount;
90577     Result result;
90578     do
90579     {
90580       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
90581       if ( ( result == Result::eSuccess ) && propertyCount )
90582       {
90583         properties.resize( propertyCount );
90584         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
90585         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90586       }
90587     } while ( result == Result::eIncomplete );
90588     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90589     {
90590       properties.resize( propertyCount );
90591     }
90592     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
90593   }
90594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90595 
90596 
90597   template <typename Dispatch>
getDisplayPropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties,Dispatch const & d) const90598   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90599   {
90600     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPropertiesKHR *>( pProperties ) ) );
90601   }
90602 
90603 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90604   template <typename DisplayPropertiesKHRAllocator, typename Dispatch>
getDisplayPropertiesKHR(Dispatch const & d) const90605   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type PhysicalDevice::getDisplayPropertiesKHR( Dispatch const & d ) const
90606   {
90607     std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties;
90608     uint32_t propertyCount;
90609     Result result;
90610     do
90611     {
90612       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
90613       if ( ( result == Result::eSuccess ) && propertyCount )
90614       {
90615         properties.resize( propertyCount );
90616         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
90617         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90618       }
90619     } while ( result == Result::eIncomplete );
90620     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90621     {
90622       properties.resize( propertyCount );
90623     }
90624     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
90625   }
90626 
90627   template <typename DisplayPropertiesKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPropertiesKHR>::value, int>::type >
getDisplayPropertiesKHR(DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator,Dispatch const & d) const90628   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type PhysicalDevice::getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d ) const
90629   {
90630     std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties( displayPropertiesKHRAllocator );
90631     uint32_t propertyCount;
90632     Result result;
90633     do
90634     {
90635       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
90636       if ( ( result == Result::eSuccess ) && propertyCount )
90637       {
90638         properties.resize( propertyCount );
90639         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
90640         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90641       }
90642     } while ( result == Result::eIncomplete );
90643     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90644     {
90645       properties.resize( propertyCount );
90646     }
90647     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
90648   }
90649 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90650 
90651 
90652   template <typename Dispatch>
getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const90653   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90654   {
90655     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) );
90656   }
90657 
90658 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90659   template <typename Dispatch>
getExternalBufferProperties(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const90660   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90661   {
90662     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
90663     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) );
90664     return externalBufferProperties;
90665   }
90666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90667 
90668   template <typename Dispatch>
getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const90669   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90670   {
90671     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) );
90672   }
90673 
90674 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90675   template <typename Dispatch>
getExternalBufferPropertiesKHR(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const90676   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90677   {
90678     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
90679     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) );
90680     return externalBufferProperties;
90681   }
90682 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90683 
90684 
90685   template <typename Dispatch>
getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const90686   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90687   {
90688     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) );
90689   }
90690 
90691 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90692   template <typename Dispatch>
getExternalFenceProperties(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const90693   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90694   {
90695     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
90696     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) );
90697     return externalFenceProperties;
90698   }
90699 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90700 
90701   template <typename Dispatch>
getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const90702   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90703   {
90704     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) );
90705   }
90706 
90707 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90708   template <typename Dispatch>
getExternalFencePropertiesKHR(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const90709   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90710   {
90711     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
90712     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) );
90713     return externalFenceProperties;
90714   }
90715 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90716 
90717 
90718   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) const90719   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
90720   {
90721     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 ) ) );
90722   }
90723 
90724 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90725   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) const90726   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
90727   {
90728     VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
90729     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 ) ) );
90730     return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" );
90731   }
90732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90733 
90734 
90735   template <typename Dispatch>
getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const90736   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90737   {
90738     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) );
90739   }
90740 
90741 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90742   template <typename Dispatch>
getExternalSemaphoreProperties(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const90743   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90744   {
90745     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
90746     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) );
90747     return externalSemaphoreProperties;
90748   }
90749 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90750 
90751   template <typename Dispatch>
getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const90752   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90753   {
90754     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) );
90755   }
90756 
90757 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90758   template <typename Dispatch>
getExternalSemaphorePropertiesKHR(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const90759   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90760   {
90761     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
90762     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) );
90763     return externalSemaphoreProperties;
90764   }
90765 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90766 
90767 
90768   template <typename Dispatch>
getFeatures(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures,Dispatch const & d) const90769   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90770   {
90771     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures *>( pFeatures ) );
90772   }
90773 
90774 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90775   template <typename Dispatch>
getFeatures(Dispatch const & d) const90776   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90777   {
90778     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
90779     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures *>( &features ) );
90780     return features;
90781   }
90782 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90783 
90784 
90785   template <typename Dispatch>
getFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const90786   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90787   {
90788     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) );
90789   }
90790 
90791 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90792   template <typename Dispatch>
getFeatures2(Dispatch const & d) const90793   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90794   {
90795     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
90796     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
90797     return features;
90798   }
90799 
90800   template <typename X, typename Y, typename... Z, typename Dispatch>
getFeatures2(Dispatch const & d) const90801   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90802   {
90803     StructureChain<X, Y, Z...> structureChain;
90804     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
90805     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
90806     return structureChain;
90807   }
90808 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90809 
90810   template <typename Dispatch>
getFeatures2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const90811   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90812   {
90813     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) );
90814   }
90815 
90816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90817   template <typename Dispatch>
getFeatures2KHR(Dispatch const & d) const90818   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90819   {
90820     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
90821     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
90822     return features;
90823   }
90824 
90825   template <typename X, typename Y, typename... Z, typename Dispatch>
getFeatures2KHR(Dispatch const & d) const90826   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90827   {
90828     StructureChain<X, Y, Z...> structureChain;
90829     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
90830     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
90831     return structureChain;
90832   }
90833 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90834 
90835 
90836   template <typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties,Dispatch const & d) const90837   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90838   {
90839     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties *>( pFormatProperties ) );
90840   }
90841 
90842 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90843   template <typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90844   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90845   {
90846     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
90847     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties *>( &formatProperties ) );
90848     return formatProperties;
90849   }
90850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90851 
90852 
90853   template <typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const90854   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90855   {
90856     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) );
90857   }
90858 
90859 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90860   template <typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90861   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90862   {
90863     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
90864     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
90865     return formatProperties;
90866   }
90867 
90868   template <typename X, typename Y, typename... Z, typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90869   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90870   {
90871     StructureChain<X, Y, Z...> structureChain;
90872     VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
90873     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
90874     return structureChain;
90875   }
90876 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90877 
90878   template <typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const90879   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90880   {
90881     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) );
90882   }
90883 
90884 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90885   template <typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90886   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90887   {
90888     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
90889     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
90890     return formatProperties;
90891   }
90892 
90893   template <typename X, typename Y, typename... Z, typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90894   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90895   {
90896     StructureChain<X, Y, Z...> structureChain;
90897     VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
90898     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
90899     return structureChain;
90900   }
90901 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90902 
90903 
90904   template <typename Dispatch>
getFragmentShadingRatesKHR(uint32_t * pFragmentShadingRateCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates,Dispatch const & d) const90905   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90906   {
90907     return static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, pFragmentShadingRateCount, reinterpret_cast< VkPhysicalDeviceFragmentShadingRateKHR *>( pFragmentShadingRates ) ) );
90908   }
90909 
90910 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90911   template <typename PhysicalDeviceFragmentShadingRateKHRAllocator, typename Dispatch>
getFragmentShadingRatesKHR(Dispatch const & d) const90912   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type PhysicalDevice::getFragmentShadingRatesKHR( Dispatch const & d ) const
90913   {
90914     std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator> fragmentShadingRates;
90915     uint32_t fragmentShadingRateCount;
90916     Result result;
90917     do
90918     {
90919       result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
90920       if ( ( result == Result::eSuccess ) && fragmentShadingRateCount )
90921       {
90922         fragmentShadingRates.resize( fragmentShadingRateCount );
90923         result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
90924         VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
90925       }
90926     } while ( result == Result::eIncomplete );
90927     if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) )
90928     {
90929       fragmentShadingRates.resize( fragmentShadingRateCount );
90930     }
90931     return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" );
90932   }
90933 
90934   template <typename PhysicalDeviceFragmentShadingRateKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceFragmentShadingRateKHR>::value, int>::type >
getFragmentShadingRatesKHR(PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator,Dispatch const & d) const90935   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type PhysicalDevice::getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, Dispatch const & d ) const
90936   {
90937     std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator> fragmentShadingRates( physicalDeviceFragmentShadingRateKHRAllocator );
90938     uint32_t fragmentShadingRateCount;
90939     Result result;
90940     do
90941     {
90942       result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
90943       if ( ( result == Result::eSuccess ) && fragmentShadingRateCount )
90944       {
90945         fragmentShadingRates.resize( fragmentShadingRateCount );
90946         result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
90947         VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
90948       }
90949     } while ( result == Result::eIncomplete );
90950     if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) )
90951     {
90952       fragmentShadingRates.resize( fragmentShadingRateCount );
90953     }
90954     return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" );
90955   }
90956 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90957 
90958 
90959   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) const90960   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
90961   {
90962     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 ) ) );
90963   }
90964 
90965 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90966   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) const90967   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
90968   {
90969     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
90970     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 ) ) );
90971     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" );
90972   }
90973 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90974 
90975 
90976   template <typename Dispatch>
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const90977   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
90978   {
90979     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) );
90980   }
90981 
90982 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90983   template <typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const90984   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
90985   {
90986     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
90987     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
90988     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
90989   }
90990 
90991   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const90992   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
90993   {
90994     StructureChain<X, Y, Z...> structureChain;
90995     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
90996     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
90997     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
90998   }
90999 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91000 
91001   template <typename Dispatch>
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const91002   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
91003   {
91004     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) );
91005   }
91006 
91007 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91008   template <typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const91009   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
91010   {
91011     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
91012     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
91013     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
91014   }
91015 
91016   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const91017   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
91018   {
91019     StructureChain<X, Y, Z...> structureChain;
91020     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
91021     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
91022     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
91023   }
91024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91025 
91026 
91027   template <typename Dispatch>
getMemoryProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties,Dispatch const & d) const91028   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91029   {
91030     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties *>( pMemoryProperties ) );
91031   }
91032 
91033 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91034   template <typename Dispatch>
getMemoryProperties(Dispatch const & d) const91035   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91036   {
91037     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
91038     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( &memoryProperties ) );
91039     return memoryProperties;
91040   }
91041 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91042 
91043 
91044   template <typename Dispatch>
getMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const91045   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91046   {
91047     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
91048   }
91049 
91050 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91051   template <typename Dispatch>
getMemoryProperties2(Dispatch const & d) const91052   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91053   {
91054     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
91055     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
91056     return memoryProperties;
91057   }
91058 
91059   template <typename X, typename Y, typename... Z, typename Dispatch>
getMemoryProperties2(Dispatch const & d) const91060   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91061   {
91062     StructureChain<X, Y, Z...> structureChain;
91063     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
91064     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
91065     return structureChain;
91066   }
91067 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91068 
91069   template <typename Dispatch>
getMemoryProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const91070   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91071   {
91072     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
91073   }
91074 
91075 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91076   template <typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const91077   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91078   {
91079     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
91080     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
91081     return memoryProperties;
91082   }
91083 
91084   template <typename X, typename Y, typename... Z, typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const91085   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91086   {
91087     StructureChain<X, Y, Z...> structureChain;
91088     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
91089     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
91090     return structureChain;
91091   }
91092 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91093 
91094 
91095   template <typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties,Dispatch const & d) const91096   VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91097   {
91098     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast< VkMultisamplePropertiesEXT *>( pMultisampleProperties ) );
91099   }
91100 
91101 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91102   template <typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,Dispatch const & d) const91103   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91104   {
91105     VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
91106     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT *>( &multisampleProperties ) );
91107     return multisampleProperties;
91108   }
91109 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91110 
91111 
91112   template <typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pRectCount,VULKAN_HPP_NAMESPACE::Rect2D * pRects,Dispatch const & d) const91113   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
91114   {
91115     return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast< VkRect2D *>( pRects ) ) );
91116   }
91117 
91118 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91119   template <typename Rect2DAllocator, typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91120   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
91121   {
91122     std::vector<Rect2D, Rect2DAllocator> rects;
91123     uint32_t rectCount;
91124     Result result;
91125     do
91126     {
91127       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
91128       if ( ( result == Result::eSuccess ) && rectCount )
91129       {
91130         rects.resize( rectCount );
91131         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) ) );
91132         VULKAN_HPP_ASSERT( rectCount <= rects.size() );
91133       }
91134     } while ( result == Result::eIncomplete );
91135     if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) )
91136     {
91137       rects.resize( rectCount );
91138     }
91139     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
91140   }
91141 
91142   template <typename Rect2DAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Rect2D>::value, int>::type >
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Rect2DAllocator & rect2DAllocator,Dispatch const & d) const91143   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d ) const
91144   {
91145     std::vector<Rect2D, Rect2DAllocator> rects( rect2DAllocator );
91146     uint32_t rectCount;
91147     Result result;
91148     do
91149     {
91150       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
91151       if ( ( result == Result::eSuccess ) && rectCount )
91152       {
91153         rects.resize( rectCount );
91154         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) ) );
91155         VULKAN_HPP_ASSERT( rectCount <= rects.size() );
91156       }
91157     } while ( result == Result::eIncomplete );
91158     if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) )
91159     {
91160       rects.resize( rectCount );
91161     }
91162     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
91163   }
91164 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91165 
91166 
91167   template <typename Dispatch>
getProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties,Dispatch const & d) const91168   VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91169   {
91170     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties *>( pProperties ) );
91171   }
91172 
91173 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91174   template <typename Dispatch>
getProperties(Dispatch const & d) const91175   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91176   {
91177     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
91178     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties *>( &properties ) );
91179     return properties;
91180   }
91181 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91182 
91183 
91184   template <typename Dispatch>
getProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const91185   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91186   {
91187     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) );
91188   }
91189 
91190 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91191   template <typename Dispatch>
getProperties2(Dispatch const & d) const91192   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91193   {
91194     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
91195     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
91196     return properties;
91197   }
91198 
91199   template <typename X, typename Y, typename... Z, typename Dispatch>
getProperties2(Dispatch const & d) const91200   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91201   {
91202     StructureChain<X, Y, Z...> structureChain;
91203     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
91204     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
91205     return structureChain;
91206   }
91207 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91208 
91209   template <typename Dispatch>
getProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const91210   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91211   {
91212     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) );
91213   }
91214 
91215 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91216   template <typename Dispatch>
getProperties2KHR(Dispatch const & d) const91217   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91218   {
91219     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
91220     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
91221     return properties;
91222   }
91223 
91224   template <typename X, typename Y, typename... Z, typename Dispatch>
getProperties2KHR(Dispatch const & d) const91225   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91226   {
91227     StructureChain<X, Y, Z...> structureChain;
91228     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
91229     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
91230     return structureChain;
91231   }
91232 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91233 
91234 
91235   template <typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses,Dispatch const & d) const91236   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91237   {
91238     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( pPerformanceQueryCreateInfo ), pNumPasses );
91239   }
91240 
91241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91242   template <typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo,Dispatch const & d) const91243   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91244   {
91245     uint32_t numPasses;
91246     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( &performanceQueryCreateInfo ), &numPasses );
91247     return numPasses;
91248   }
91249 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91250 
91251 
91252   template <typename Dispatch>
getQueueFamilyProperties(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties,Dispatch const & d) const91253   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91254   {
91255     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties *>( pQueueFamilyProperties ) );
91256   }
91257 
91258 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91259   template <typename QueueFamilyPropertiesAllocator, typename Dispatch>
getQueueFamilyProperties(Dispatch const & d) const91260   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const
91261   {
91262     std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties;
91263     uint32_t queueFamilyPropertyCount;
91264     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91265     queueFamilyProperties.resize( queueFamilyPropertyCount );
91266     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
91267     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91268     return queueFamilyProperties;
91269   }
91270 
91271   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) const91272   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d ) const
91273   {
91274     std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties( queueFamilyPropertiesAllocator );
91275     uint32_t queueFamilyPropertyCount;
91276     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91277     queueFamilyProperties.resize( queueFamilyPropertyCount );
91278     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
91279     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91280     return queueFamilyProperties;
91281   }
91282 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91283 
91284 
91285   template <typename Dispatch>
getQueueFamilyProperties2(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const91286   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91287   {
91288     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) );
91289   }
91290 
91291 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91292   template <typename QueueFamilyProperties2Allocator, typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const91293   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const
91294   {
91295     std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties;
91296     uint32_t queueFamilyPropertyCount;
91297     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91298     queueFamilyProperties.resize( queueFamilyPropertyCount );
91299     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
91300     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91301     return queueFamilyProperties;
91302   }
91303 
91304   template <typename QueueFamilyProperties2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type >
getQueueFamilyProperties2(QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,Dispatch const & d) const91305   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> PhysicalDevice::getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const
91306   {
91307     std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties( queueFamilyProperties2Allocator );
91308     uint32_t queueFamilyPropertyCount;
91309     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91310     queueFamilyProperties.resize( queueFamilyPropertyCount );
91311     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
91312     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91313     return queueFamilyProperties;
91314   }
91315 
91316   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const91317   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator> PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const
91318   {
91319     uint32_t queueFamilyPropertyCount;
91320     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91321     std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount );
91322     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount );
91323     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
91324     {
91325       queueFamilyProperties[i].pNext =
91326         returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
91327     }
91328     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
91329     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91330     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
91331     {
91332       returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
91333     }
91334     return returnVector;
91335   }
91336 
91337   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type>
getQueueFamilyProperties2(StructureChainAllocator & structureChainAllocator,Dispatch const & d) const91338   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator> PhysicalDevice::getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const
91339   {
91340     uint32_t queueFamilyPropertyCount;
91341     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91342     std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount, structureChainAllocator );
91343     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount );
91344     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
91345     {
91346       queueFamilyProperties[i].pNext =
91347         returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
91348     }
91349     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
91350     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91351     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
91352     {
91353       returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
91354     }
91355     return returnVector;
91356   }
91357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91358 
91359   template <typename Dispatch>
getQueueFamilyProperties2KHR(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const91360   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91361   {
91362     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) );
91363   }
91364 
91365 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91366   template <typename QueueFamilyProperties2Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const91367   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const
91368   {
91369     std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties;
91370     uint32_t queueFamilyPropertyCount;
91371     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91372     queueFamilyProperties.resize( queueFamilyPropertyCount );
91373     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
91374     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91375     return queueFamilyProperties;
91376   }
91377 
91378   template <typename QueueFamilyProperties2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type >
getQueueFamilyProperties2KHR(QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,Dispatch const & d) const91379   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> PhysicalDevice::getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const
91380   {
91381     std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties( queueFamilyProperties2Allocator );
91382     uint32_t queueFamilyPropertyCount;
91383     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91384     queueFamilyProperties.resize( queueFamilyPropertyCount );
91385     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
91386     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91387     return queueFamilyProperties;
91388   }
91389 
91390   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const91391   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator> PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const
91392   {
91393     uint32_t queueFamilyPropertyCount;
91394     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91395     std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount );
91396     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount );
91397     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
91398     {
91399       queueFamilyProperties[i].pNext =
91400         returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
91401     }
91402     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
91403     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91404     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
91405     {
91406       returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
91407     }
91408     return returnVector;
91409   }
91410 
91411   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type>
getQueueFamilyProperties2KHR(StructureChainAllocator & structureChainAllocator,Dispatch const & d) const91412   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator> PhysicalDevice::getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const
91413   {
91414     uint32_t queueFamilyPropertyCount;
91415     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
91416     std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount, structureChainAllocator );
91417     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount );
91418     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
91419     {
91420       queueFamilyProperties[i].pNext =
91421         returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
91422     }
91423     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
91424     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
91425     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
91426     {
91427       returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
91428     }
91429     return returnVector;
91430   }
91431 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91432 
91433 
91434 #ifdef VK_USE_PLATFORM_SCREEN_QNX
91435   template <typename Dispatch>
getScreenPresentationSupportQNX(uint32_t queueFamilyIndex,struct _screen_window * window,Dispatch const & d) const91436   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window* window, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91437   {
91438     return static_cast<Bool32>( d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, window ) );
91439   }
91440 
91441 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91442   template <typename Dispatch>
getScreenPresentationSupportQNX(uint32_t queueFamilyIndex,struct _screen_window & window,Dispatch const & d) const91443   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91444   {
91445     return d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, &window );
91446   }
91447 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91448 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
91449 
91450 
91451   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) const91452   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
91453   {
91454     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 ) );
91455   }
91456 
91457 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91458   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) const91459   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
91460   {
91461     std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties;
91462     uint32_t propertyCount;
91463     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 );
91464     properties.resize( propertyCount );
91465     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() ) );
91466     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91467     return properties;
91468   }
91469 
91470   template <typename SparseImageFormatPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties>::value, int>::type >
getSparseImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageTiling tiling,SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator,Dispatch const & d) const91471   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, Dispatch const & d ) const
91472   {
91473     std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties( sparseImageFormatPropertiesAllocator );
91474     uint32_t propertyCount;
91475     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 );
91476     properties.resize( propertyCount );
91477     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() ) );
91478     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91479     return properties;
91480   }
91481 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91482 
91483 
91484   template <typename Dispatch>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const91485   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
91486   {
91487     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) );
91488   }
91489 
91490 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91491   template <typename SparseImageFormatProperties2Allocator, typename Dispatch>
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const91492   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
91493   {
91494     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
91495     uint32_t propertyCount;
91496     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
91497     properties.resize( propertyCount );
91498     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
91499     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91500     return properties;
91501   }
91502 
91503   template <typename SparseImageFormatProperties2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties2>::value, int>::type >
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,Dispatch const & d) const91504   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const
91505   {
91506     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( sparseImageFormatProperties2Allocator );
91507     uint32_t propertyCount;
91508     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
91509     properties.resize( propertyCount );
91510     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
91511     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91512     return properties;
91513   }
91514 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91515 
91516   template <typename Dispatch>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const91517   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
91518   {
91519     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) );
91520   }
91521 
91522 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91523   template <typename SparseImageFormatProperties2Allocator, typename Dispatch>
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const91524   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
91525   {
91526     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
91527     uint32_t propertyCount;
91528     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
91529     properties.resize( propertyCount );
91530     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
91531     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91532     return properties;
91533   }
91534 
91535   template <typename SparseImageFormatProperties2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties2>::value, int>::type >
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,Dispatch const & d) const91536   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const
91537   {
91538     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( sparseImageFormatProperties2Allocator );
91539     uint32_t propertyCount;
91540     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
91541     properties.resize( propertyCount );
91542     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
91543     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91544     return properties;
91545   }
91546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91547 
91548 
91549   template <typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t * pCombinationCount,VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations,Dispatch const & d) const91550   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91551   {
91552     return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast< VkFramebufferMixedSamplesCombinationNV *>( pCombinations ) ) );
91553   }
91554 
91555 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91556   template <typename FramebufferMixedSamplesCombinationNVAllocator, typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const & d) const91557   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d ) const
91558   {
91559     std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations;
91560     uint32_t combinationCount;
91561     Result result;
91562     do
91563     {
91564       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
91565       if ( ( result == Result::eSuccess ) && combinationCount )
91566       {
91567         combinations.resize( combinationCount );
91568         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
91569         VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
91570       }
91571     } while ( result == Result::eIncomplete );
91572     if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) )
91573     {
91574       combinations.resize( combinationCount );
91575     }
91576     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
91577   }
91578 
91579   template <typename FramebufferMixedSamplesCombinationNVAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type >
getSupportedFramebufferMixedSamplesCombinationsNV(FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator,Dispatch const & d) const91580   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d ) const
91581   {
91582     std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations( framebufferMixedSamplesCombinationNVAllocator );
91583     uint32_t combinationCount;
91584     Result result;
91585     do
91586     {
91587       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
91588       if ( ( result == Result::eSuccess ) && combinationCount )
91589       {
91590         combinations.resize( combinationCount );
91591         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
91592         VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
91593       }
91594     } while ( result == Result::eIncomplete );
91595     if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) )
91596     {
91597       combinations.resize( combinationCount );
91598     }
91599     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
91600   }
91601 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91602 
91603 
91604   template <typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities,Dispatch const & d) const91605   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
91606   {
91607     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkSurfaceCapabilities2EXT *>( pSurfaceCapabilities ) ) );
91608   }
91609 
91610 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91611   template <typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91612   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
91613   {
91614     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
91615     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) ) );
91616     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" );
91617   }
91618 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91619 
91620 
91621   template <typename Dispatch>
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities,Dispatch const & d) const91622   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
91623   {
91624     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), reinterpret_cast< VkSurfaceCapabilities2KHR *>( pSurfaceCapabilities ) ) );
91625   }
91626 
91627 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91628   template <typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const91629   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
91630   {
91631     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
91632     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
91633     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
91634   }
91635 
91636   template <typename X, typename Y, typename... Z, typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const91637   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
91638   {
91639     StructureChain<X, Y, Z...> structureChain;
91640     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
91641     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
91642     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
91643   }
91644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91645 
91646 
91647   template <typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities,Dispatch const & d) const91648   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
91649   {
91650     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkSurfaceCapabilitiesKHR *>( pSurfaceCapabilities ) ) );
91651   }
91652 
91653 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91654   template <typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91655   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
91656   {
91657     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
91658     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) ) );
91659     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" );
91660   }
91661 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91662 
91663 
91664   template <typename Dispatch>
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats,Dispatch const & d) const91665   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
91666   {
91667     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast< VkSurfaceFormat2KHR *>( pSurfaceFormats ) ) );
91668   }
91669 
91670 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91671   template <typename SurfaceFormat2KHRAllocator, typename Dispatch>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const91672   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
91673   {
91674     std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats;
91675     uint32_t surfaceFormatCount;
91676     Result result;
91677     do
91678     {
91679       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
91680       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
91681       {
91682         surfaceFormats.resize( surfaceFormatCount );
91683         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
91684         VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
91685       }
91686     } while ( result == Result::eIncomplete );
91687     if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) )
91688     {
91689       surfaceFormats.resize( surfaceFormatCount );
91690     }
91691     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
91692   }
91693 
91694   template <typename SurfaceFormat2KHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormat2KHR>::value, int>::type >
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator,Dispatch const & d) const91695   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, Dispatch const & d ) const
91696   {
91697     std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats( surfaceFormat2KHRAllocator );
91698     uint32_t surfaceFormatCount;
91699     Result result;
91700     do
91701     {
91702       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
91703       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
91704       {
91705         surfaceFormats.resize( surfaceFormatCount );
91706         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
91707         VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
91708       }
91709     } while ( result == Result::eIncomplete );
91710     if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) )
91711     {
91712       surfaceFormats.resize( surfaceFormatCount );
91713     }
91714     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
91715   }
91716 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91717 
91718 
91719   template <typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats,Dispatch const & d) const91720   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
91721   {
91722     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pSurfaceFormatCount, reinterpret_cast< VkSurfaceFormatKHR *>( pSurfaceFormats ) ) );
91723   }
91724 
91725 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91726   template <typename SurfaceFormatKHRAllocator, typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91727   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
91728   {
91729     std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats;
91730     uint32_t surfaceFormatCount;
91731     Result result;
91732     do
91733     {
91734       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
91735       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
91736       {
91737         surfaceFormats.resize( surfaceFormatCount );
91738         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
91739         VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
91740       }
91741     } while ( result == Result::eIncomplete );
91742     if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) )
91743     {
91744       surfaceFormats.resize( surfaceFormatCount );
91745     }
91746     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
91747   }
91748 
91749   template <typename SurfaceFormatKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormatKHR>::value, int>::type >
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator,Dispatch const & d) const91750   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, Dispatch const & d ) const
91751   {
91752     std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats( surfaceFormatKHRAllocator );
91753     uint32_t surfaceFormatCount;
91754     Result result;
91755     do
91756     {
91757       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
91758       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
91759       {
91760         surfaceFormats.resize( surfaceFormatCount );
91761         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
91762         VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
91763       }
91764     } while ( result == Result::eIncomplete );
91765     if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) )
91766     {
91767       surfaceFormats.resize( surfaceFormatCount );
91768     }
91769     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
91770   }
91771 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91772 
91773 
91774 #ifdef VK_USE_PLATFORM_WIN32_KHR
91775   template <typename Dispatch>
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const91776   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
91777   {
91778     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), pPresentModeCount, reinterpret_cast< VkPresentModeKHR *>( pPresentModes ) ) );
91779   }
91780 
91781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91782   template <typename PresentModeKHRAllocator, typename Dispatch>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const91783   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
91784   {
91785     std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes;
91786     uint32_t presentModeCount;
91787     Result result;
91788     do
91789     {
91790       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr ) );
91791       if ( ( result == Result::eSuccess ) && presentModeCount )
91792       {
91793         presentModes.resize( presentModeCount );
91794         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
91795         VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
91796       }
91797     } while ( result == Result::eIncomplete );
91798     if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) )
91799     {
91800       presentModes.resize( presentModeCount );
91801     }
91802     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
91803   }
91804 
91805   template <typename PresentModeKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type >
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,PresentModeKHRAllocator & presentModeKHRAllocator,Dispatch const & d) const91806   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d ) const
91807   {
91808     std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
91809     uint32_t presentModeCount;
91810     Result result;
91811     do
91812     {
91813       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr ) );
91814       if ( ( result == Result::eSuccess ) && presentModeCount )
91815       {
91816         presentModes.resize( presentModeCount );
91817         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
91818         VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
91819       }
91820     } while ( result == Result::eIncomplete );
91821     if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) )
91822     {
91823       presentModes.resize( presentModeCount );
91824     }
91825     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
91826   }
91827 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91828 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91829 
91830 
91831   template <typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const91832   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
91833   {
91834     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pPresentModeCount, reinterpret_cast< VkPresentModeKHR *>( pPresentModes ) ) );
91835   }
91836 
91837 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91838   template <typename PresentModeKHRAllocator, typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91839   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
91840   {
91841     std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes;
91842     uint32_t presentModeCount;
91843     Result result;
91844     do
91845     {
91846       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
91847       if ( ( result == Result::eSuccess ) && presentModeCount )
91848       {
91849         presentModes.resize( presentModeCount );
91850         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
91851         VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
91852       }
91853     } while ( result == Result::eIncomplete );
91854     if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) )
91855     {
91856       presentModes.resize( presentModeCount );
91857     }
91858     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
91859   }
91860 
91861   template <typename PresentModeKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type >
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,PresentModeKHRAllocator & presentModeKHRAllocator,Dispatch const & d) const91862   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d ) const
91863   {
91864     std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
91865     uint32_t presentModeCount;
91866     Result result;
91867     do
91868     {
91869       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
91870       if ( ( result == Result::eSuccess ) && presentModeCount )
91871       {
91872         presentModes.resize( presentModeCount );
91873         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
91874         VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
91875       }
91876     } while ( result == Result::eIncomplete );
91877     if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) )
91878     {
91879       presentModes.resize( presentModeCount );
91880     }
91881     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
91882   }
91883 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91884 
91885 
91886   template <typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::Bool32 * pSupported,Dispatch const & d) const91887   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
91888   {
91889     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkBool32 *>( pSupported ) ) );
91890   }
91891 
91892 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91893   template <typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91894   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
91895   {
91896     VULKAN_HPP_NAMESPACE::Bool32 supported;
91897     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32 *>( &supported ) ) );
91898     return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" );
91899   }
91900 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91901 
91902 
91903   template <typename Dispatch>
getToolPropertiesEXT(uint32_t * pToolCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT * pToolProperties,Dispatch const & d) const91904   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91905   {
91906     return static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, pToolCount, reinterpret_cast< VkPhysicalDeviceToolPropertiesEXT *>( pToolProperties ) ) );
91907   }
91908 
91909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91910   template <typename PhysicalDeviceToolPropertiesEXTAllocator, typename Dispatch>
getToolPropertiesEXT(Dispatch const & d) const91911   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type PhysicalDevice::getToolPropertiesEXT( Dispatch const & d ) const
91912   {
91913     std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator> toolProperties;
91914     uint32_t toolCount;
91915     Result result;
91916     do
91917     {
91918       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
91919       if ( ( result == Result::eSuccess ) && toolCount )
91920       {
91921         toolProperties.resize( toolCount );
91922         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT *>( toolProperties.data() ) ) );
91923         VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
91924       }
91925     } while ( result == Result::eIncomplete );
91926     if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) )
91927     {
91928       toolProperties.resize( toolCount );
91929     }
91930     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
91931   }
91932 
91933   template <typename PhysicalDeviceToolPropertiesEXTAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolPropertiesEXT>::value, int>::type >
getToolPropertiesEXT(PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator,Dispatch const & d) const91934   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type PhysicalDevice::getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d ) const
91935   {
91936     std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator> toolProperties( physicalDeviceToolPropertiesEXTAllocator );
91937     uint32_t toolCount;
91938     Result result;
91939     do
91940     {
91941       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
91942       if ( ( result == Result::eSuccess ) && toolCount )
91943       {
91944         toolProperties.resize( toolCount );
91945         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT *>( toolProperties.data() ) ) );
91946         VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
91947       }
91948     } while ( result == Result::eIncomplete );
91949     if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) )
91950     {
91951       toolProperties.resize( toolCount );
91952     }
91953     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
91954   }
91955 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91956 
91957 
91958 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
91959   template <typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display * display,Dispatch const & d) const91960   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91961   {
91962     return static_cast<Bool32>( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) );
91963   }
91964 
91965 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91966   template <typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display,Dispatch const & d) const91967   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91968   {
91969     return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
91970   }
91971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91972 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
91973 
91974 
91975 #ifdef VK_USE_PLATFORM_WIN32_KHR
91976   template <typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const91977   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91978   {
91979     return static_cast<Bool32>( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) );
91980   }
91981 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91982 
91983 
91984 #ifdef VK_USE_PLATFORM_XCB_KHR
91985   template <typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id,Dispatch const & d) const91986   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
91987   {
91988     return static_cast<Bool32>( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) );
91989   }
91990 
91991 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91992   template <typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id,Dispatch const & d) const91993   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
91994   {
91995     return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
91996   }
91997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91998 #endif /*VK_USE_PLATFORM_XCB_KHR*/
91999 
92000 
92001 #ifdef VK_USE_PLATFORM_XLIB_KHR
92002   template <typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display * dpy,VisualID visualID,Dispatch const & d) const92003   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92004   {
92005     return static_cast<Bool32>( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) );
92006   }
92007 
92008 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92009   template <typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID,Dispatch const & d) const92010   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
92011   {
92012     return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
92013   }
92014 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92015 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
92016 
92017 
92018 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
92019   template <typename Dispatch>
getRandROutputDisplayEXT(Display * dpy,RROutput rrOutput,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,Dispatch const & d) const92020   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92021   {
92022     return static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast< VkDisplayKHR *>( pDisplay ) ) );
92023   }
92024 
92025 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92026   template <typename Dispatch>
getRandROutputDisplayEXT(Display & dpy,RROutput rrOutput,Dispatch const & d) const92027   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
92028   {
92029     VULKAN_HPP_NAMESPACE::DisplayKHR display;
92030     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
92031     return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" );
92032   }
92033 
92034 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
92035   template <typename Dispatch>
getRandROutputDisplayEXTUnique(Display & dpy,RROutput rrOutput,Dispatch const & d) const92036   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type PhysicalDevice::getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
92037   {
92038     VULKAN_HPP_NAMESPACE::DisplayKHR display;
92039     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
92040     ObjectRelease<PhysicalDevice, Dispatch> deleter( *this, d );
92041     return createResultValue<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique", deleter );
92042   }
92043 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
92044 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92045 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
92046 
92047 
92048 #ifdef VK_USE_PLATFORM_WIN32_KHR
92049   template <typename Dispatch>
getWinrtDisplayNV(uint32_t deviceRelativeId,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,Dispatch const & d) const92050   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92051   {
92052     return static_cast<Result>( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast< VkDisplayKHR *>( pDisplay ) ) );
92053   }
92054 
92055 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92056   template <typename Dispatch>
getWinrtDisplayNV(uint32_t deviceRelativeId,Dispatch const & d) const92057   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d ) const
92058   {
92059     VULKAN_HPP_NAMESPACE::DisplayKHR display;
92060     Result result = static_cast<Result>( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
92061     return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNV" );
92062   }
92063 
92064 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
92065   template <typename Dispatch>
getWinrtDisplayNVUnique(uint32_t deviceRelativeId,Dispatch const & d) const92066   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type PhysicalDevice::getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d ) const
92067   {
92068     VULKAN_HPP_NAMESPACE::DisplayKHR display;
92069     Result result = static_cast<Result>( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
92070     ObjectRelease<PhysicalDevice, Dispatch> deleter( *this, d );
92071     return createResultValue<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNVUnique", deleter );
92072   }
92073 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
92074 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92075 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92076 
92077 
92078 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
92079   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const92080   VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92081   {
92082     return static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
92083   }
92084 #else
92085   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const92086   VULKAN_HPP_INLINE typename ResultValueType<void>::type PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
92087   {
92088     Result result = static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
92089     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::releaseDisplayEXT" );
92090   }
92091 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92092 
92093 
92094 
92095   template <typename Dispatch>
getCheckpointData2NV(uint32_t * pCheckpointDataCount,VULKAN_HPP_NAMESPACE::CheckpointData2NV * pCheckpointData,Dispatch const & d) const92096   VULKAN_HPP_INLINE void Queue::getCheckpointData2NV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointData2NV* pCheckpointData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92097   {
92098     d.vkGetQueueCheckpointData2NV( m_queue, pCheckpointDataCount, reinterpret_cast< VkCheckpointData2NV *>( pCheckpointData ) );
92099   }
92100 
92101 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92102   template <typename CheckpointData2NVAllocator, typename Dispatch>
getCheckpointData2NV(Dispatch const & d) const92103   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointData2NV, CheckpointData2NVAllocator> Queue::getCheckpointData2NV( Dispatch const & d ) const
92104   {
92105     std::vector<CheckpointData2NV, CheckpointData2NVAllocator> checkpointData;
92106     uint32_t checkpointDataCount;
92107     d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr );
92108     checkpointData.resize( checkpointDataCount );
92109     d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointData2NV *>( checkpointData.data() ) );
92110     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
92111     return checkpointData;
92112   }
92113 
92114   template <typename CheckpointData2NVAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CheckpointData2NV>::value, int>::type >
getCheckpointData2NV(CheckpointData2NVAllocator & checkpointData2NVAllocator,Dispatch const & d) const92115   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointData2NV, CheckpointData2NVAllocator> Queue::getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d ) const
92116   {
92117     std::vector<CheckpointData2NV, CheckpointData2NVAllocator> checkpointData( checkpointData2NVAllocator );
92118     uint32_t checkpointDataCount;
92119     d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr );
92120     checkpointData.resize( checkpointDataCount );
92121     d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointData2NV *>( checkpointData.data() ) );
92122     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
92123     return checkpointData;
92124   }
92125 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92126 
92127 
92128   template <typename Dispatch>
getCheckpointDataNV(uint32_t * pCheckpointDataCount,VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData,Dispatch const & d) const92129   VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92130   {
92131     d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast< VkCheckpointDataNV *>( pCheckpointData ) );
92132   }
92133 
92134 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92135   template <typename CheckpointDataNVAllocator, typename Dispatch>
getCheckpointDataNV(Dispatch const & d) const92136   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator> Queue::getCheckpointDataNV( Dispatch const & d ) const
92137   {
92138     std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData;
92139     uint32_t checkpointDataCount;
92140     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
92141     checkpointData.resize( checkpointDataCount );
92142     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
92143     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
92144     return checkpointData;
92145   }
92146 
92147   template <typename CheckpointDataNVAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CheckpointDataNV>::value, int>::type >
getCheckpointDataNV(CheckpointDataNVAllocator & checkpointDataNVAllocator,Dispatch const & d) const92148   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator> Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const
92149   {
92150     std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData( checkpointDataNVAllocator );
92151     uint32_t checkpointDataCount;
92152     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
92153     checkpointData.resize( checkpointDataCount );
92154     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
92155     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
92156     return checkpointData;
92157   }
92158 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92159 
92160 
92161   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const92162   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92163   {
92164     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
92165   }
92166 
92167 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92168   template <typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const92169   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
92170   {
92171     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
92172   }
92173 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92174 
92175 
92176   template <typename Dispatch>
bindSparse(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const92177   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
92178   {
92179     return static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast<const VkBindSparseInfo *>( pBindInfo ), static_cast<VkFence>( fence ) ) );
92180   }
92181 
92182 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92183   template <typename Dispatch>
bindSparse(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const92184   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
92185   {
92186     Result result = static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
92187     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
92188   }
92189 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92190 
92191 
92192   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const92193   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92194   {
92195     d.vkQueueEndDebugUtilsLabelEXT( m_queue );
92196   }
92197 
92198 
92199   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const92200   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92201   {
92202     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
92203   }
92204 
92205 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92206   template <typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const92207   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
92208   {
92209     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
92210   }
92211 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92212 
92213 
92214   template <typename Dispatch>
presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo,Dispatch const & d) const92215   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92216   {
92217     return static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( pPresentInfo ) ) );
92218   }
92219 
92220 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92221   template <typename Dispatch>
presentKHR(const PresentInfoKHR & presentInfo,Dispatch const & d) const92222   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d ) const
92223   {
92224     Result result = static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) );
92225     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
92226   }
92227 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92228 
92229 
92230 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
92231   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const92232   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92233   {
92234     return static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
92235   }
92236 #else
92237   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const92238   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
92239   {
92240     Result result = static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
92241     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
92242   }
92243 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92244 
92245 
92246 
92247   template <typename Dispatch>
submit(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const92248   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
92249   {
92250     return static_cast<Result>( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast<const VkSubmitInfo *>( pSubmits ), static_cast<VkFence>( fence ) ) );
92251   }
92252 
92253 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92254   template <typename Dispatch>
submit(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const92255   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
92256   {
92257     Result result = static_cast<Result>( d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) ) );
92258     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
92259   }
92260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92261 
92262 
92263   template <typename Dispatch>
submit2KHR(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const92264   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit2KHR( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92265   {
92266     return static_cast<Result>( d.vkQueueSubmit2KHR( m_queue, submitCount, reinterpret_cast<const VkSubmitInfo2KHR *>( pSubmits ), static_cast<VkFence>( fence ) ) );
92267   }
92268 
92269 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
92270   template <typename Dispatch>
submit2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR> const & submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const92271   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::submit2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR> const & submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
92272   {
92273     Result result = static_cast<Result>( d.vkQueueSubmit2KHR( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo2KHR *>( submits.data() ), static_cast<VkFence>( fence ) ) );
92274     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" );
92275   }
92276 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92277 
92278 
92279 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
92280   template <typename Dispatch>
waitIdle(Dispatch const & d) const92281   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
92282   {
92283     return static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
92284   }
92285 #else
92286   template <typename Dispatch>
waitIdle(Dispatch const & d) const92287   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::waitIdle( Dispatch const & d ) const
92288   {
92289     Result result = static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
92290     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
92291   }
92292 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92293 
92294 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92295   template <> struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>{ enum { value = true }; };
92296 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92297 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92298   template <> struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>{ enum { value = true }; };
92299 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92300   template <> struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>{ enum { value = true }; };
92301   template <> struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>{ enum { value = true }; };
92302   template <> struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>{ enum { value = true }; };
92303   template <> struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>{ enum { value = true }; };
92304   template <> struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>{ enum { value = true }; };
92305   template <> struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>{ enum { value = true }; };
92306   template <> struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>{ enum { value = true }; };
92307   template <> struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>{ enum { value = true }; };
92308   template <> struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>{ enum { value = true }; };
92309   template <> struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>{ enum { value = true }; };
92310   template <> struct StructExtends<CopyCommandTransformInfoQCOM, BufferImageCopy2KHR>{ enum { value = true }; };
92311   template <> struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2KHR>{ enum { value = true }; };
92312 #ifdef VK_USE_PLATFORM_WIN32_KHR
92313   template <> struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>{ enum { value = true }; };
92314 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92315   template <> struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>{ enum { value = true }; };
92316   template <> struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>{ enum { value = true }; };
92317   template <> struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>{ enum { value = true }; };
92318   template <> struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>{ enum { value = true }; };
92319   template <> struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
92320   template <> struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfoEXT, DescriptorPoolCreateInfo>{ enum { value = true }; };
92321   template <> struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>{ enum { value = true }; };
92322   template <> struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>{ enum { value = true }; };
92323   template <> struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>{ enum { value = true }; };
92324   template <> struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>{ enum { value = true }; };
92325   template <> struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>{ enum { value = true }; };
92326   template <> struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>{ enum { value = true }; };
92327   template <> struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>{ enum { value = true }; };
92328   template <> struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>{ enum { value = true }; };
92329   template <> struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>{ enum { value = true }; };
92330   template <> struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>{ enum { value = true }; };
92331   template <> struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>{ enum { value = true }; };
92332   template <> struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>{ enum { value = true }; };
92333   template <> struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>{ enum { value = true }; };
92334   template <> struct StructExtends<DevicePrivateDataCreateInfoEXT, DeviceCreateInfo>{ enum { value = true }; };
92335   template <> struct StructExtends<DeviceQueueGlobalPriorityCreateInfoEXT, DeviceQueueCreateInfo>{ enum { value = true }; };
92336   template <> struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>{ enum { value = true }; };
92337   template <> struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>{ enum { value = true }; };
92338   template <> struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>{ enum { value = true }; };
92339   template <> struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>{ enum { value = true }; };
92340 #ifdef VK_USE_PLATFORM_WIN32_KHR
92341   template <> struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>{ enum { value = true }; };
92342 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92343   template <> struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
92344   template <> struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
92345 #ifdef VK_USE_PLATFORM_WIN32_KHR
92346   template <> struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
92347 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92348 #ifdef VK_USE_PLATFORM_WIN32_KHR
92349   template <> struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
92350 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92351   template <> struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>{ enum { value = true }; };
92352 #ifdef VK_USE_PLATFORM_WIN32_KHR
92353   template <> struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>{ enum { value = true }; };
92354 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92355 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92356   template <> struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>{ enum { value = true }; };
92357   template <> struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>{ enum { value = true }; };
92358 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92359   template <> struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>{ enum { value = true }; };
92360   template <> struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>{ enum { value = true }; };
92361   template <> struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>{ enum { value = true }; };
92362   template <> struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>{ enum { value = true }; };
92363   template <> struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>{ enum { value = true }; };
92364   template <> struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>{ enum { value = true }; };
92365   template <> struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>{ enum { value = true }; };
92366   template <> struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92367   template <> struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>{ enum { value = true }; };
92368   template <> struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>{ enum { value = true }; };
92369   template <> struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>{ enum { value = true }; };
92370   template <> struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>{ enum { value = true }; };
92371   template <> struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
92372   template <> struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>{ enum { value = true }; };
92373   template <> struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>{ enum { value = true }; };
92374   template <> struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
92375   template <> struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>{ enum { value = true }; };
92376   template <> struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>{ enum { value = true }; };
92377   template <> struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>{ enum { value = true }; };
92378 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92379   template <> struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>{ enum { value = true }; };
92380 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92381   template <> struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
92382   template <> struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>{ enum { value = true }; };
92383 #ifdef VK_USE_PLATFORM_WIN32_KHR
92384   template <> struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
92385 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92386 #ifdef VK_USE_PLATFORM_WIN32_KHR
92387   template <> struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
92388 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92389   template <> struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>{ enum { value = true }; };
92390   template <> struct StructExtends<MemoryBarrier2KHR, SubpassDependency2>{ enum { value = true }; };
92391   template <> struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
92392   template <> struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>{ enum { value = true }; };
92393   template <> struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
92394   template <> struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>{ enum { value = true }; };
92395   template <> struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorSetLayoutCreateInfo>{ enum { value = true }; };
92396   template <> struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorPoolCreateInfo>{ enum { value = true }; };
92397   template <> struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>{ enum { value = true }; };
92398   template <> struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo2KHR>{ enum { value = true }; };
92399   template <> struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92400   template <> struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>{ enum { value = true }; };
92401   template <> struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92402   template <> struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92403   template <> struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92404   template <> struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>{ enum { value = true }; };
92405   template <> struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92406   template <> struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92407   template <> struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92408   template <> struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92409   template <> struct StructExtends<PhysicalDeviceAccelerationStructurePropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
92410   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92411   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92412   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92413   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92414   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>{ enum { value = true }; };
92415   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92416   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92417   template <> struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>{ enum { value = true }; };
92418   template <> struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>{ enum { value = true }; };
92419   template <> struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92420   template <> struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92421   template <> struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92422   template <> struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92423   template <> struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92424   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92425   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92426   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92427   template <> struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92428   template <> struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92429   template <> struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92430   template <> struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92431   template <> struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92432   template <> struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92433   template <> struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92434   template <> struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92435   template <> struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92436   template <> struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92437   template <> struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92438   template <> struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92439   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92440   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>{ enum { value = true }; };
92441   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92442   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92443   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92444   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92445   template <> struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92446   template <> struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92447   template <> struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92448   template <> struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92449   template <> struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92450   template <> struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92451   template <> struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92452   template <> struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92453   template <> struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92454   template <> struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92455   template <> struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
92456   template <> struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92457   template <> struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>{ enum { value = true }; };
92458   template <> struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92459   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92460   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92461   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92462   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92463   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92464   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92465   template <> struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92466   template <> struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92467   template <> struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92468   template <> struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92469   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92470   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92471   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92472   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92473   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92474   template <> struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
92475   template <> struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92476   template <> struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>{ enum { value = true }; };
92477   template <> struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92478   template <> struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
92479   template <> struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92480   template <> struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92481   template <> struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
92482   template <> struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92483   template <> struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>{ enum { value = true }; };
92484   template <> struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92485   template <> struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92486   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92487   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92488   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92489   template <> struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92490   template <> struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92491   template <> struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92492   template <> struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
92493   template <> struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>{ enum { value = true }; };
92494   template <> struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92495   template <> struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92496   template <> struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92497   template <> struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92498   template <> struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92499   template <> struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92500   template <> struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>{ enum { value = true }; };
92501   template <> struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>{ enum { value = true }; };
92502   template <> struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92503   template <> struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, PhysicalDeviceFeatures2>{ enum { value = true }; };
92504   template <> struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, DeviceCreateInfo>{ enum { value = true }; };
92505   template <> struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92506   template <> struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92507   template <> struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92508   template <> struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
92509   template <> struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92510   template <> struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92511   template <> struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92512   template <> struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92513   template <> struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92514 #ifdef VK_ENABLE_BETA_EXTENSIONS
92515   template <> struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92516   template <> struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92517 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92518 #ifdef VK_ENABLE_BETA_EXTENSIONS
92519   template <> struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
92520 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92521   template <> struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92522   template <> struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92523   template <> struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92524   template <> struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>{ enum { value = true }; };
92525   template <> struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92526   template <> struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
92527   template <> struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92528   template <> struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92529   template <> struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92530   template <> struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92531   template <> struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
92532   template <> struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92533   template <> struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92534   template <> struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92535   template <> struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92536   template <> struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92537   template <> struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92538   template <> struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92539   template <> struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92540   template <> struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92541   template <> struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>{ enum { value = true }; };
92542   template <> struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92543   template <> struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>{ enum { value = true }; };
92544   template <> struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92545   template <> struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>{ enum { value = true }; };
92546   template <> struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92547   template <> struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92548   template <> struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
92549   template <> struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>{ enum { value = true }; };
92550   template <> struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92551   template <> struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92552   template <> struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>{ enum { value = true }; };
92553   template <> struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>{ enum { value = true }; };
92554   template <> struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92555   template <> struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92556   template <> struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92557   template <> struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>{ enum { value = true }; };
92558   template <> struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
92559   template <> struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>{ enum { value = true }; };
92560   template <> struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92561   template <> struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92562   template <> struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92563   template <> struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92564   template <> struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>{ enum { value = true }; };
92565   template <> struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>{ enum { value = true }; };
92566   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92567   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92568   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92569   template <> struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92570   template <> struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>{ enum { value = true }; };
92571   template <> struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92572   template <> struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92573   template <> struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92574   template <> struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92575   template <> struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92576   template <> struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92577   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92578   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92579   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92580   template <> struct StructExtends<PhysicalDeviceSynchronization2FeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92581   template <> struct StructExtends<PhysicalDeviceSynchronization2FeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92582   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92583   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92584   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92585   template <> struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92586   template <> struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92587   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92588   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>{ enum { value = true }; };
92589   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92590   template <> struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92591   template <> struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92592   template <> struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92593   template <> struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92594   template <> struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>{ enum { value = true }; };
92595   template <> struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92596   template <> struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>{ enum { value = true }; };
92597   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92598   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92599   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92600   template <> struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
92601   template <> struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>{ enum { value = true }; };
92602   template <> struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
92603   template <> struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
92604   template <> struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>{ enum { value = true }; };
92605   template <> struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
92606   template <> struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92607   template <> struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>{ enum { value = true }; };
92608   template <> struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92609   template <> struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92610   template <> struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92611   template <> struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92612   template <> struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92613   template <> struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92614   template <> struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>{ enum { value = true }; };
92615   template <> struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92616   template <> struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>{ enum { value = true }; };
92617   template <> struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
92618   template <> struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
92619   template <> struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
92620   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92621   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, ComputePipelineCreateInfo>{ enum { value = true }; };
92622   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoNV>{ enum { value = true }; };
92623   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoKHR>{ enum { value = true }; };
92624   template <> struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92625   template <> struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92626   template <> struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92627   template <> struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92628   template <> struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92629   template <> struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92630   template <> struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92631   template <> struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92632   template <> struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92633   template <> struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
92634   template <> struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, PipelineShaderStageCreateInfo>{ enum { value = true }; };
92635   template <> struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>{ enum { value = true }; };
92636   template <> struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>{ enum { value = true }; };
92637   template <> struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92638   template <> struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92639   template <> struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92640   template <> struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92641   template <> struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92642 #ifdef VK_USE_PLATFORM_GGP
92643   template <> struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>{ enum { value = true }; };
92644 #endif /*VK_USE_PLATFORM_GGP*/
92645   template <> struct StructExtends<PresentRegionsKHR, PresentInfoKHR>{ enum { value = true }; };
92646   template <> struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>{ enum { value = true }; };
92647   template <> struct StructExtends<ProtectedSubmitInfo, SubmitInfo>{ enum { value = true }; };
92648   template <> struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>{ enum { value = true }; };
92649   template <> struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>{ enum { value = true }; };
92650   template <> struct StructExtends<QueueFamilyCheckpointProperties2NV, QueueFamilyProperties2>{ enum { value = true }; };
92651   template <> struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>{ enum { value = true }; };
92652   template <> struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>{ enum { value = true }; };
92653   template <> struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>{ enum { value = true }; };
92654   template <> struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>{ enum { value = true }; };
92655   template <> struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>{ enum { value = true }; };
92656   template <> struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>{ enum { value = true }; };
92657   template <> struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>{ enum { value = true }; };
92658   template <> struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>{ enum { value = true }; };
92659   template <> struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>{ enum { value = true }; };
92660   template <> struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier2KHR>{ enum { value = true }; };
92661   template <> struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>{ enum { value = true }; };
92662   template <> struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>{ enum { value = true }; };
92663   template <> struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>{ enum { value = true }; };
92664   template <> struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>{ enum { value = true }; };
92665   template <> struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>{ enum { value = true }; };
92666   template <> struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>{ enum { value = true }; };
92667   template <> struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>{ enum { value = true }; };
92668   template <> struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>{ enum { value = true }; };
92669   template <> struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>{ enum { value = true }; };
92670   template <> struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>{ enum { value = true }; };
92671 #ifdef VK_USE_PLATFORM_WIN32_KHR
92672   template <> struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>{ enum { value = true }; };
92673 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92674 #ifdef VK_USE_PLATFORM_WIN32_KHR
92675   template <> struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>{ enum { value = true }; };
92676   template <> struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
92677 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92678 #ifdef VK_USE_PLATFORM_WIN32_KHR
92679   template <> struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>{ enum { value = true }; };
92680   template <> struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
92681 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92682   template <> struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>{ enum { value = true }; };
92683   template <> struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
92684   template <> struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>{ enum { value = true }; };
92685   template <> struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>{ enum { value = true }; };
92686   template <> struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>{ enum { value = true }; };
92687   template <> struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>{ enum { value = true }; };
92688   template <> struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>{ enum { value = true }; };
92689   template <> struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>{ enum { value = true }; };
92690 #ifdef VK_USE_PLATFORM_WIN32_KHR
92691   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>{ enum { value = true }; };
92692   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo2KHR>{ enum { value = true }; };
92693 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92694 #ifdef VK_USE_PLATFORM_WIN32_KHR
92695   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>{ enum { value = true }; };
92696   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo2KHR>{ enum { value = true }; };
92697 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92698   template <> struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>{ enum { value = true }; };
92699   template <> struct StructExtends<WriteDescriptorSetAccelerationStructureNV, WriteDescriptorSet>{ enum { value = true }; };
92700   template <> struct StructExtends<WriteDescriptorSetInlineUniformBlockEXT, WriteDescriptorSet>{ enum { value = true }; };
92701 
92702 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
92703   class DynamicLoader
92704   {
92705   public:
92706 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
DynamicLoader(std::string const & vulkanLibraryName={} )92707     DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT
92708 #  else
92709     DynamicLoader( std::string const & vulkanLibraryName = {} )
92710 #  endif
92711     {
92712       if ( !vulkanLibraryName.empty() )
92713       {
92714 #  if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ )
92715         m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
92716 #  elif defined( _WIN32 )
92717         m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
92718 #  else
92719 #    error unsupported platform
92720 #  endif
92721       }
92722       else
92723       {
92724 #  if defined( __linux__ ) || defined( __QNXNTO__ )
92725         m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
92726         if ( m_library == nullptr )
92727         {
92728           m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
92729         }
92730 #  elif defined( __APPLE__ )
92731         m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
92732 #  elif defined( _WIN32 )
92733         m_library = ::LoadLibraryA( "vulkan-1.dll" );
92734 #  else
92735 #    error unsupported platform
92736 #  endif
92737       }
92738 
92739 #ifndef VULKAN_HPP_NO_EXCEPTIONS
92740       if ( m_library == nullptr )
92741       {
92742         // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
92743         throw std::runtime_error( "Failed to load vulkan library!" );
92744       }
92745 #endif
92746     }
92747 
92748     DynamicLoader( DynamicLoader const& ) = delete;
92749 
DynamicLoader(DynamicLoader && other)92750     DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library(other.m_library)
92751     {
92752       other.m_library = nullptr;
92753     }
92754 
92755     DynamicLoader &operator=( DynamicLoader const& ) = delete;
92756 
operator =(DynamicLoader && other)92757     DynamicLoader &operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
92758     {
92759       std::swap(m_library, other.m_library);
92760       return *this;
92761     }
92762 
~DynamicLoader()92763     ~DynamicLoader() VULKAN_HPP_NOEXCEPT
92764     {
92765       if ( m_library )
92766       {
92767 #  if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ )
92768         dlclose( m_library );
92769 #  elif defined( _WIN32 )
92770         ::FreeLibrary( m_library );
92771 #  else
92772 #    error unsupported platform
92773 #  endif
92774       }
92775     }
92776 
92777     template <typename T>
getProcAddress(const char * function) const92778     T getProcAddress( const char* function ) const VULKAN_HPP_NOEXCEPT
92779     {
92780 #  if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ )
92781       return (T)dlsym( m_library, function );
92782 #  elif defined( _WIN32 )
92783       return (T)::GetProcAddress( m_library, function );
92784 #  else
92785 #    error unsupported platform
92786 #  endif
92787     }
92788 
success() const92789     bool success() const VULKAN_HPP_NOEXCEPT { return m_library != nullptr; }
92790 
92791   private:
92792 #  if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ )
92793     void * m_library;
92794 #  elif defined( _WIN32 )
92795     ::HINSTANCE m_library;
92796 #  else
92797 #    error unsupported platform
92798 #  endif
92799   };
92800 #endif
92801 
92802 
92803   class DispatchLoaderDynamic
92804   {
92805   public:
92806     using PFN_dummy = void ( * )();
92807 
92808 #ifdef VK_USE_PLATFORM_WIN32_KHR
92809     PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
92810 #else
92811     PFN_dummy placeholder_dont_call_vkAcquireFullScreenExclusiveModeEXT = 0;
92812 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92813     PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
92814     PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
92815     PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
92816     PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
92817 #ifdef VK_USE_PLATFORM_WIN32_KHR
92818     PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
92819 #else
92820     PFN_dummy placeholder_dont_call_vkAcquireWinrtDisplayNV = 0;
92821 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92822 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
92823     PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
92824 #else
92825     PFN_dummy placeholder_dont_call_vkAcquireXlibDisplayEXT = 0;
92826 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
92827     PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
92828     PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
92829     PFN_vkAllocateMemory vkAllocateMemory = 0;
92830     PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
92831     PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
92832     PFN_vkBindBufferMemory vkBindBufferMemory = 0;
92833     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
92834     PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
92835     PFN_vkBindImageMemory vkBindImageMemory = 0;
92836     PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
92837     PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
92838     PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0;
92839     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
92840     PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
92841     PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
92842     PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
92843     PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
92844     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
92845     PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
92846     PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
92847     PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
92848     PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
92849     PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
92850     PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
92851     PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
92852     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
92853     PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
92854     PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
92855     PFN_vkCmdBlitImage vkCmdBlitImage = 0;
92856     PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
92857     PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
92858     PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0;
92859     PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0;
92860     PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
92861     PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
92862     PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
92863     PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
92864     PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
92865     PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
92866     PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
92867     PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
92868     PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
92869     PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
92870     PFN_vkCmdCopyImage vkCmdCopyImage = 0;
92871     PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
92872     PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
92873     PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
92874     PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
92875     PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
92876     PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
92877     PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
92878     PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
92879     PFN_vkCmdDispatch vkCmdDispatch = 0;
92880     PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
92881     PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
92882     PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
92883     PFN_vkCmdDraw vkCmdDraw = 0;
92884     PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
92885     PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
92886     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
92887     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
92888     PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
92889     PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
92890     PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
92891     PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
92892     PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
92893     PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
92894     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
92895     PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
92896     PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
92897     PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
92898     PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
92899     PFN_vkCmdEndQuery vkCmdEndQuery = 0;
92900     PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
92901     PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
92902     PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
92903     PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
92904     PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
92905     PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
92906     PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
92907     PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
92908     PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
92909     PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
92910     PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
92911     PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
92912     PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
92913     PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0;
92914     PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
92915     PFN_vkCmdPushConstants vkCmdPushConstants = 0;
92916     PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
92917     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
92918     PFN_vkCmdResetEvent vkCmdResetEvent = 0;
92919     PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0;
92920     PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
92921     PFN_vkCmdResolveImage vkCmdResolveImage = 0;
92922     PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
92923     PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
92924     PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
92925     PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
92926     PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
92927     PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
92928     PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
92929     PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
92930     PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
92931     PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
92932     PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
92933     PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
92934     PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
92935     PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
92936     PFN_vkCmdSetEvent vkCmdSetEvent = 0;
92937     PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0;
92938     PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
92939     PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
92940     PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
92941     PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
92942     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
92943     PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
92944     PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
92945     PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
92946     PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
92947     PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
92948     PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0;
92949     PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
92950     PFN_vkCmdSetScissor vkCmdSetScissor = 0;
92951     PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
92952     PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
92953     PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
92954     PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
92955     PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
92956     PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
92957     PFN_vkCmdSetViewport vkCmdSetViewport = 0;
92958     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
92959     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
92960     PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
92961     PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
92962     PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
92963     PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
92964     PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
92965     PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
92966     PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0;
92967     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
92968     PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
92969     PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0;
92970     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
92971     PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
92972     PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0;
92973     PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
92974     PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
92975     PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
92976     PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
92977     PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
92978     PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
92979 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92980     PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
92981 #else
92982     PFN_dummy placeholder_dont_call_vkCreateAndroidSurfaceKHR = 0;
92983 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92984     PFN_vkCreateBuffer vkCreateBuffer = 0;
92985     PFN_vkCreateBufferView vkCreateBufferView = 0;
92986     PFN_vkCreateCommandPool vkCreateCommandPool = 0;
92987     PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
92988     PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
92989     PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
92990     PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
92991     PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
92992     PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
92993     PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
92994     PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
92995     PFN_vkCreateDevice vkCreateDevice = 0;
92996 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
92997     PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
92998 #else
92999     PFN_dummy placeholder_dont_call_vkCreateDirectFBSurfaceEXT = 0;
93000 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
93001     PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
93002     PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
93003     PFN_vkCreateEvent vkCreateEvent = 0;
93004     PFN_vkCreateFence vkCreateFence = 0;
93005     PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
93006     PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
93007     PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
93008 #ifdef VK_USE_PLATFORM_IOS_MVK
93009     PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
93010 #else
93011     PFN_dummy placeholder_dont_call_vkCreateIOSSurfaceMVK = 0;
93012 #endif /*VK_USE_PLATFORM_IOS_MVK*/
93013     PFN_vkCreateImage vkCreateImage = 0;
93014 #ifdef VK_USE_PLATFORM_FUCHSIA
93015     PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
93016 #else
93017     PFN_dummy placeholder_dont_call_vkCreateImagePipeSurfaceFUCHSIA = 0;
93018 #endif /*VK_USE_PLATFORM_FUCHSIA*/
93019     PFN_vkCreateImageView vkCreateImageView = 0;
93020     PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
93021     PFN_vkCreateInstance vkCreateInstance = 0;
93022 #ifdef VK_USE_PLATFORM_MACOS_MVK
93023     PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
93024 #else
93025     PFN_dummy placeholder_dont_call_vkCreateMacOSSurfaceMVK = 0;
93026 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
93027 #ifdef VK_USE_PLATFORM_METAL_EXT
93028     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
93029 #else
93030     PFN_dummy placeholder_dont_call_vkCreateMetalSurfaceEXT = 0;
93031 #endif /*VK_USE_PLATFORM_METAL_EXT*/
93032     PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
93033     PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
93034     PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
93035     PFN_vkCreateQueryPool vkCreateQueryPool = 0;
93036     PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
93037     PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
93038     PFN_vkCreateRenderPass vkCreateRenderPass = 0;
93039     PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
93040     PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
93041     PFN_vkCreateSampler vkCreateSampler = 0;
93042     PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
93043     PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
93044 #ifdef VK_USE_PLATFORM_SCREEN_QNX
93045     PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0;
93046 #else
93047     PFN_dummy placeholder_dont_call_vkCreateScreenSurfaceQNX = 0;
93048 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
93049     PFN_vkCreateSemaphore vkCreateSemaphore = 0;
93050     PFN_vkCreateShaderModule vkCreateShaderModule = 0;
93051     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
93052 #ifdef VK_USE_PLATFORM_GGP
93053     PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
93054 #else
93055     PFN_dummy placeholder_dont_call_vkCreateStreamDescriptorSurfaceGGP = 0;
93056 #endif /*VK_USE_PLATFORM_GGP*/
93057     PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
93058     PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
93059 #ifdef VK_USE_PLATFORM_VI_NN
93060     PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
93061 #else
93062     PFN_dummy placeholder_dont_call_vkCreateViSurfaceNN = 0;
93063 #endif /*VK_USE_PLATFORM_VI_NN*/
93064 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
93065     PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
93066 #else
93067     PFN_dummy placeholder_dont_call_vkCreateWaylandSurfaceKHR = 0;
93068 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
93069 #ifdef VK_USE_PLATFORM_WIN32_KHR
93070     PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
93071 #else
93072     PFN_dummy placeholder_dont_call_vkCreateWin32SurfaceKHR = 0;
93073 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93074 #ifdef VK_USE_PLATFORM_XCB_KHR
93075     PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
93076 #else
93077     PFN_dummy placeholder_dont_call_vkCreateXcbSurfaceKHR = 0;
93078 #endif /*VK_USE_PLATFORM_XCB_KHR*/
93079 #ifdef VK_USE_PLATFORM_XLIB_KHR
93080     PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
93081 #else
93082     PFN_dummy placeholder_dont_call_vkCreateXlibSurfaceKHR = 0;
93083 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
93084     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
93085     PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
93086     PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
93087     PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
93088     PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
93089     PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
93090     PFN_vkDestroyBuffer vkDestroyBuffer = 0;
93091     PFN_vkDestroyBufferView vkDestroyBufferView = 0;
93092     PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
93093     PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
93094     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
93095     PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
93096     PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
93097     PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
93098     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
93099     PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
93100     PFN_vkDestroyDevice vkDestroyDevice = 0;
93101     PFN_vkDestroyEvent vkDestroyEvent = 0;
93102     PFN_vkDestroyFence vkDestroyFence = 0;
93103     PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
93104     PFN_vkDestroyImage vkDestroyImage = 0;
93105     PFN_vkDestroyImageView vkDestroyImageView = 0;
93106     PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
93107     PFN_vkDestroyInstance vkDestroyInstance = 0;
93108     PFN_vkDestroyPipeline vkDestroyPipeline = 0;
93109     PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
93110     PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
93111     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
93112     PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
93113     PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
93114     PFN_vkDestroySampler vkDestroySampler = 0;
93115     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
93116     PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
93117     PFN_vkDestroySemaphore vkDestroySemaphore = 0;
93118     PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
93119     PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
93120     PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
93121     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
93122     PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
93123     PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
93124     PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
93125     PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
93126     PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
93127     PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
93128     PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
93129     PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
93130     PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
93131     PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
93132     PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
93133     PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
93134     PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
93135     PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
93136     PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
93137     PFN_vkFreeMemory vkFreeMemory = 0;
93138     PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0;
93139     PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
93140     PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
93141     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
93142 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93143     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
93144 #else
93145     PFN_dummy placeholder_dont_call_vkGetAndroidHardwareBufferPropertiesANDROID = 0;
93146 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93147     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
93148     PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
93149     PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
93150     PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
93151     PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
93152     PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
93153     PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
93154     PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
93155     PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
93156     PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
93157     PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
93158     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
93159     PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
93160     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
93161     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
93162     PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
93163     PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
93164 #ifdef VK_USE_PLATFORM_WIN32_KHR
93165     PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
93166 #else
93167     PFN_dummy placeholder_dont_call_vkGetDeviceGroupSurfacePresentModes2EXT = 0;
93168 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93169     PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
93170     PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
93171     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
93172     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
93173     PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
93174     PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
93175     PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
93176     PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
93177     PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
93178     PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
93179     PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
93180     PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
93181     PFN_vkGetEventStatus vkGetEventStatus = 0;
93182     PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
93183     PFN_vkGetFenceStatus vkGetFenceStatus = 0;
93184 #ifdef VK_USE_PLATFORM_WIN32_KHR
93185     PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
93186 #else
93187     PFN_dummy placeholder_dont_call_vkGetFenceWin32HandleKHR = 0;
93188 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93189     PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
93190     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
93191     PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
93192     PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
93193     PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
93194     PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
93195     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
93196     PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
93197     PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
93198     PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
93199     PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
93200     PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
93201 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93202     PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
93203 #else
93204     PFN_dummy placeholder_dont_call_vkGetMemoryAndroidHardwareBufferANDROID = 0;
93205 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93206     PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
93207     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
93208     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
93209 #ifdef VK_USE_PLATFORM_WIN32_KHR
93210     PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
93211 #else
93212     PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandleKHR = 0;
93213 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93214 #ifdef VK_USE_PLATFORM_WIN32_KHR
93215     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
93216 #else
93217     PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandleNV = 0;
93218 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93219 #ifdef VK_USE_PLATFORM_WIN32_KHR
93220     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
93221 #else
93222     PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandlePropertiesKHR = 0;
93223 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93224     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
93225     PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
93226     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
93227     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
93228 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
93229     PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
93230 #else
93231     PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
93232 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
93233     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
93234     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
93235     PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
93236     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
93237     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
93238     PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
93239     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
93240     PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
93241     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
93242     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
93243     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
93244     PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
93245     PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
93246     PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
93247     PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
93248     PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
93249     PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
93250     PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
93251     PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
93252     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
93253     PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
93254     PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
93255     PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
93256     PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
93257     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
93258     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
93259     PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
93260     PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
93261     PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
93262     PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
93263     PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
93264     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
93265     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
93266 #ifdef VK_USE_PLATFORM_SCREEN_QNX
93267     PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
93268 #else
93269     PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
93270 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
93271     PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
93272     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
93273     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
93274     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
93275     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
93276     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
93277     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
93278     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
93279     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
93280 #ifdef VK_USE_PLATFORM_WIN32_KHR
93281     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
93282 #else
93283     PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
93284 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93285     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
93286     PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
93287     PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
93288 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
93289     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
93290 #else
93291     PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
93292 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
93293 #ifdef VK_USE_PLATFORM_WIN32_KHR
93294     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
93295 #else
93296     PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
93297 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93298 #ifdef VK_USE_PLATFORM_XCB_KHR
93299     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
93300 #else
93301     PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
93302 #endif /*VK_USE_PLATFORM_XCB_KHR*/
93303 #ifdef VK_USE_PLATFORM_XLIB_KHR
93304     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
93305 #else
93306     PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
93307 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
93308     PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
93309     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
93310     PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
93311     PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
93312     PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
93313     PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
93314     PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
93315     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
93316 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
93317     PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
93318 #else
93319     PFN_dummy placeholder_dont_call_vkGetRandROutputDisplayEXT = 0;
93320 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
93321     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
93322     PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
93323     PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
93324     PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0;
93325     PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
93326     PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
93327     PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
93328     PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
93329     PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
93330 #ifdef VK_USE_PLATFORM_WIN32_KHR
93331     PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
93332 #else
93333     PFN_dummy placeholder_dont_call_vkGetSemaphoreWin32HandleKHR = 0;
93334 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93335     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
93336     PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
93337     PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
93338     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
93339     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
93340 #ifdef VK_USE_PLATFORM_WIN32_KHR
93341     PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0;
93342 #else
93343     PFN_dummy placeholder_dont_call_vkGetWinrtDisplayNV = 0;
93344 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93345     PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
93346 #ifdef VK_USE_PLATFORM_WIN32_KHR
93347     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
93348 #else
93349     PFN_dummy placeholder_dont_call_vkImportFenceWin32HandleKHR = 0;
93350 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93351     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
93352 #ifdef VK_USE_PLATFORM_WIN32_KHR
93353     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
93354 #else
93355     PFN_dummy placeholder_dont_call_vkImportSemaphoreWin32HandleKHR = 0;
93356 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93357     PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
93358     PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
93359     PFN_vkMapMemory vkMapMemory = 0;
93360     PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
93361     PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
93362     PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
93363     PFN_vkQueueBindSparse vkQueueBindSparse = 0;
93364     PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
93365     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
93366     PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
93367     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
93368     PFN_vkQueueSubmit vkQueueSubmit = 0;
93369     PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0;
93370     PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
93371     PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
93372     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
93373     PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
93374 #ifdef VK_USE_PLATFORM_WIN32_KHR
93375     PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
93376 #else
93377     PFN_dummy placeholder_dont_call_vkReleaseFullScreenExclusiveModeEXT = 0;
93378 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93379     PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
93380     PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
93381     PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
93382     PFN_vkResetCommandPool vkResetCommandPool = 0;
93383     PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
93384     PFN_vkResetEvent vkResetEvent = 0;
93385     PFN_vkResetFences vkResetFences = 0;
93386     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
93387     PFN_vkResetQueryPool vkResetQueryPool = 0;
93388     PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
93389     PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
93390     PFN_vkSetEvent vkSetEvent = 0;
93391     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
93392     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
93393     PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
93394     PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
93395     PFN_vkSignalSemaphore vkSignalSemaphore = 0;
93396     PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
93397     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
93398     PFN_vkTrimCommandPool vkTrimCommandPool = 0;
93399     PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
93400     PFN_vkUnmapMemory vkUnmapMemory = 0;
93401     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
93402     PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
93403     PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
93404     PFN_vkWaitForFences vkWaitForFences = 0;
93405     PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
93406     PFN_vkWaitSemaphores vkWaitSemaphores = 0;
93407     PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
93408 
93409   public:
93410     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default;
93411     DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93412 
93413 #if !defined(VK_NO_PROTOTYPES)
93414     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
93415     template <typename DynamicLoader>
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device,DynamicLoader const & dl)93416     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device, DynamicLoader const& dl) VULKAN_HPP_NOEXCEPT
93417     {
93418       PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr");
93419       PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.template getProcAddress<PFN_vkGetDeviceProcAddr>("vkGetDeviceProcAddr");
93420       init(static_cast<VkInstance>(instance), getInstanceProcAddr, static_cast<VkDevice>(device), device ? getDeviceProcAddr : nullptr);
93421     }
93422 
93423     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
93424     template <typename DynamicLoader
93425 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
93426       = VULKAN_HPP_NAMESPACE::DynamicLoader
93427 #endif
93428     >
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device)93429     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT
93430     {
93431       static DynamicLoader dl;
93432       init(instance, device, dl);
93433     }
93434 #endif // !defined(VK_NO_PROTOTYPES)
93435 
DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr)93436     DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr) VULKAN_HPP_NOEXCEPT
93437     {
93438       init(getInstanceProcAddr);
93439     }
93440 
init(PFN_vkGetInstanceProcAddr getInstanceProcAddr)93441     void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
93442     {
93443       VULKAN_HPP_ASSERT(getInstanceProcAddr);
93444 
93445       vkGetInstanceProcAddr = getInstanceProcAddr;
93446       vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
93447       vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
93448       vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
93449       vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
93450     }
93451 
93452     // This interface does not require a linked vulkan library.
DispatchLoaderDynamic(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)93453     DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
93454     {
93455       init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
93456     }
93457 
93458     // This interface does not require a linked vulkan library.
init(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr=nullptr)93459     void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
93460     {
93461       VULKAN_HPP_ASSERT(instance && getInstanceProcAddr);
93462       vkGetInstanceProcAddr = getInstanceProcAddr;
93463       init( VULKAN_HPP_NAMESPACE::Instance(instance) );
93464       if (device) {
93465         init( VULKAN_HPP_NAMESPACE::Device(device) );
93466       }
93467     }
93468 
init(VULKAN_HPP_NAMESPACE::Instance instanceCpp)93469     void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
93470     {
93471       VkInstance instance = static_cast<VkInstance>(instanceCpp);
93472 #ifdef VK_USE_PLATFORM_WIN32_KHR
93473       vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
93474 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93475 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
93476       vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
93477 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
93478 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93479       vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
93480 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93481       vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
93482       vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
93483       vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
93484 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
93485       vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
93486 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
93487       vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
93488       vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
93489       vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
93490 #ifdef VK_USE_PLATFORM_IOS_MVK
93491       vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
93492 #endif /*VK_USE_PLATFORM_IOS_MVK*/
93493 #ifdef VK_USE_PLATFORM_FUCHSIA
93494       vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
93495 #endif /*VK_USE_PLATFORM_FUCHSIA*/
93496 #ifdef VK_USE_PLATFORM_MACOS_MVK
93497       vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
93498 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
93499 #ifdef VK_USE_PLATFORM_METAL_EXT
93500       vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
93501 #endif /*VK_USE_PLATFORM_METAL_EXT*/
93502 #ifdef VK_USE_PLATFORM_SCREEN_QNX
93503       vkCreateScreenSurfaceQNX = PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
93504 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
93505 #ifdef VK_USE_PLATFORM_GGP
93506       vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
93507 #endif /*VK_USE_PLATFORM_GGP*/
93508 #ifdef VK_USE_PLATFORM_VI_NN
93509       vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
93510 #endif /*VK_USE_PLATFORM_VI_NN*/
93511 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
93512       vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
93513 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
93514 #ifdef VK_USE_PLATFORM_WIN32_KHR
93515       vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
93516 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93517 #ifdef VK_USE_PLATFORM_XCB_KHR
93518       vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
93519 #endif /*VK_USE_PLATFORM_XCB_KHR*/
93520 #ifdef VK_USE_PLATFORM_XLIB_KHR
93521       vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
93522 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
93523       vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
93524       vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
93525       vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
93526       vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
93527       vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
93528       vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
93529       vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
93530       vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
93531       vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
93532       if ( !vkEnumeratePhysicalDeviceGroups ) vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
93533       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
93534       vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
93535       vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
93536       vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
93537       vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
93538       vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
93539       vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
93540       vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
93541       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
93542       vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
93543 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
93544       vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
93545 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
93546       vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
93547       vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
93548       vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
93549       vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
93550       vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
93551       vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
93552       if ( !vkGetPhysicalDeviceExternalBufferProperties ) vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
93553       vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
93554       vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
93555       if ( !vkGetPhysicalDeviceExternalFenceProperties ) vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
93556       vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
93557       vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
93558       vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
93559       if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
93560       vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
93561       vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
93562       vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
93563       if ( !vkGetPhysicalDeviceFeatures2 ) vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
93564       vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
93565       vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
93566       vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
93567       if ( !vkGetPhysicalDeviceFormatProperties2 ) vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
93568       vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
93569       vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
93570       vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
93571       vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
93572       if ( !vkGetPhysicalDeviceImageFormatProperties2 ) vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
93573       vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
93574       vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
93575       vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
93576       if ( !vkGetPhysicalDeviceMemoryProperties2 ) vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
93577       vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
93578       vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
93579       vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
93580       vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
93581       vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
93582       if ( !vkGetPhysicalDeviceProperties2 ) vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
93583       vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
93584       vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
93585       vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
93586       vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
93587       if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
93588 #ifdef VK_USE_PLATFORM_SCREEN_QNX
93589       vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
93590 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
93591       vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
93592       vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
93593       vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
93594       if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
93595       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
93596       vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
93597       vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
93598       vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
93599       vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
93600       vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
93601 #ifdef VK_USE_PLATFORM_WIN32_KHR
93602       vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
93603 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93604       vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
93605       vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
93606       vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
93607 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
93608       vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
93609 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
93610 #ifdef VK_USE_PLATFORM_WIN32_KHR
93611       vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
93612 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93613 #ifdef VK_USE_PLATFORM_XCB_KHR
93614       vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
93615 #endif /*VK_USE_PLATFORM_XCB_KHR*/
93616 #ifdef VK_USE_PLATFORM_XLIB_KHR
93617       vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
93618 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
93619 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
93620       vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
93621 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
93622 #ifdef VK_USE_PLATFORM_WIN32_KHR
93623       vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
93624 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93625       vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
93626       vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
93627 #ifdef VK_USE_PLATFORM_WIN32_KHR
93628       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
93629 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93630       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
93631       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
93632       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
93633       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
93634       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
93635       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
93636       vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
93637       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
93638       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
93639       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
93640       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
93641       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
93642       if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR;
93643       vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
93644       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
93645       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
93646       if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR;
93647       vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) );
93648       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
93649       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
93650       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
93651       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
93652       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
93653       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
93654       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
93655       if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
93656       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
93657       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
93658       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
93659       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
93660       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
93661       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
93662       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
93663       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
93664       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
93665       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
93666       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
93667       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
93668       vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
93669       vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) );
93670       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
93671       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
93672       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
93673       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
93674       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
93675       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
93676       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
93677       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
93678       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
93679       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
93680       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
93681       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
93682       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
93683       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
93684       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
93685       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
93686       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
93687       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
93688       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
93689       vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
93690       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
93691       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
93692       if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR;
93693       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
93694       vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
93695       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
93696       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
93697       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
93698       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
93699       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
93700       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
93701       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
93702       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
93703       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
93704       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
93705       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
93706       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
93707       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
93708       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
93709       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
93710       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
93711       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
93712       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
93713       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
93714       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
93715       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
93716       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
93717       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
93718       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
93719       if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
93720       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
93721       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
93722       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
93723       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
93724       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
93725       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
93726       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
93727       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
93728       if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
93729       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
93730       vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) );
93731       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
93732       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
93733       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
93734       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
93735       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
93736       vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) );
93737       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
93738       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
93739       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
93740       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
93741       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
93742       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
93743       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
93744       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
93745       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
93746       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
93747       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
93748       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
93749       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
93750       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
93751       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
93752       if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
93753       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
93754       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
93755       vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) );
93756       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
93757       vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) );
93758       vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
93759       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
93760       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
93761       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
93762       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
93763       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
93764       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
93765       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
93766       vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
93767       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
93768       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
93769       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
93770       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
93771       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
93772       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
93773       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
93774       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
93775       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
93776       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
93777       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
93778       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
93779       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
93780       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
93781       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
93782       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
93783       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
93784       vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) );
93785       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
93786       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
93787       vkCmdWriteBufferMarker2AMD = PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) );
93788       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
93789       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
93790       vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) );
93791       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
93792       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
93793       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
93794       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
93795       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
93796       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
93797       vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
93798       vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
93799       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
93800       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
93801       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
93802       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
93803       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
93804       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
93805       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
93806       if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
93807       vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
93808       vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
93809       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
93810       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
93811       vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
93812       vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
93813       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
93814       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
93815       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
93816       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
93817       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
93818       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
93819       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
93820       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
93821       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
93822       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
93823       if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR;
93824       vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
93825       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
93826       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
93827       if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
93828       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
93829       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
93830       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
93831       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
93832       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
93833       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
93834       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
93835       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
93836       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
93837       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
93838       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
93839       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
93840       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
93841       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
93842       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
93843       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
93844       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
93845       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
93846       if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
93847       vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
93848       vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
93849       vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
93850       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
93851       vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
93852       vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
93853       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
93854       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
93855       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
93856       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
93857       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
93858       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
93859       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
93860       vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
93861       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
93862       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
93863       if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
93864       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
93865       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
93866       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
93867       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
93868       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
93869       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
93870       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
93871       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
93872       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
93873       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
93874       vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
93875       vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) );
93876       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
93877       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
93878       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
93879 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93880       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
93881 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93882       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
93883       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
93884       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
93885       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
93886       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
93887       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
93888       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
93889       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
93890       if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
93891       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
93892       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
93893       if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
93894       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
93895       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
93896       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
93897       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
93898       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
93899       if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
93900       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
93901       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
93902       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
93903       if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
93904       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
93905 #ifdef VK_USE_PLATFORM_WIN32_KHR
93906       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
93907 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93908       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
93909       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
93910       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
93911       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
93912       if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
93913       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
93914       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
93915       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
93916       vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
93917       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
93918       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
93919 #ifdef VK_USE_PLATFORM_WIN32_KHR
93920       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
93921 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93922       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
93923       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
93924       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
93925       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
93926       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
93927       if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
93928       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
93929       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
93930       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
93931       if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
93932       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
93933       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
93934       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
93935 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93936       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
93937 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93938       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
93939       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
93940       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
93941 #ifdef VK_USE_PLATFORM_WIN32_KHR
93942       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
93943 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93944 #ifdef VK_USE_PLATFORM_WIN32_KHR
93945       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
93946 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93947 #ifdef VK_USE_PLATFORM_WIN32_KHR
93948       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
93949 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93950       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
93951       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
93952       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
93953       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
93954       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
93955       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
93956       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
93957       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
93958       vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) );
93959       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
93960       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
93961       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
93962       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
93963       if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
93964       vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
93965       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
93966       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
93967       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
93968       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
93969       if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
93970       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
93971 #ifdef VK_USE_PLATFORM_WIN32_KHR
93972       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
93973 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93974       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
93975       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
93976       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
93977       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
93978       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
93979       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
93980 #ifdef VK_USE_PLATFORM_WIN32_KHR
93981       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
93982 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93983       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
93984 #ifdef VK_USE_PLATFORM_WIN32_KHR
93985       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
93986 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93987       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
93988       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
93989       vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
93990       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
93991       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
93992       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
93993       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
93994       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
93995       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
93996       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
93997       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
93998       vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
93999       vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) );
94000       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
94001       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
94002       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
94003 #ifdef VK_USE_PLATFORM_WIN32_KHR
94004       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
94005 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94006       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
94007       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
94008       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
94009       vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
94010       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
94011       vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
94012       vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
94013       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
94014       vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
94015       if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT;
94016       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
94017       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
94018       vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
94019       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
94020       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
94021       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
94022       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
94023       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
94024       if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR;
94025       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
94026       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
94027       if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR;
94028       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
94029       vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
94030       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
94031       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
94032       if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
94033       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
94034       vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
94035       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
94036       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
94037       if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR;
94038       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
94039     }
94040 
init(VULKAN_HPP_NAMESPACE::Device deviceCpp)94041     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
94042     {
94043       VkDevice device = static_cast<VkDevice>(deviceCpp);
94044 #ifdef VK_USE_PLATFORM_WIN32_KHR
94045       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
94046 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94047       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
94048       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
94049       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
94050       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
94051       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
94052       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
94053       vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
94054       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
94055       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
94056       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
94057       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
94058       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
94059       if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR;
94060       vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
94061       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
94062       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
94063       if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR;
94064       vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
94065       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
94066       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
94067       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
94068       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
94069       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
94070       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
94071       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
94072       if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
94073       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
94074       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
94075       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
94076       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
94077       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
94078       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
94079       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
94080       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
94081       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
94082       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
94083       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
94084       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
94085       vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
94086       vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
94087       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
94088       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
94089       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
94090       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
94091       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
94092       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
94093       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
94094       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
94095       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
94096       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
94097       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
94098       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
94099       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
94100       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
94101       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
94102       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
94103       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
94104       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
94105       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
94106       vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
94107       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
94108       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
94109       if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR;
94110       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
94111       vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
94112       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
94113       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
94114       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
94115       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
94116       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
94117       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
94118       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
94119       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
94120       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
94121       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
94122       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
94123       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
94124       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
94125       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
94126       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
94127       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
94128       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
94129       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
94130       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
94131       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
94132       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
94133       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
94134       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
94135       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
94136       if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
94137       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
94138       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
94139       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
94140       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
94141       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
94142       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
94143       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
94144       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
94145       if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
94146       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
94147       vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
94148       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
94149       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
94150       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
94151       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
94152       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
94153       vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
94154       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
94155       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
94156       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
94157       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
94158       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
94159       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
94160       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
94161       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
94162       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
94163       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
94164       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
94165       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
94166       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
94167       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
94168       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
94169       if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
94170       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
94171       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
94172       vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
94173       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
94174       vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
94175       vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
94176       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
94177       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
94178       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
94179       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
94180       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
94181       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
94182       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
94183       vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
94184       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
94185       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
94186       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
94187       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
94188       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
94189       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
94190       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
94191       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
94192       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
94193       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
94194       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
94195       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
94196       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
94197       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
94198       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
94199       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
94200       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
94201       vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
94202       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
94203       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
94204       vkCmdWriteBufferMarker2AMD = PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
94205       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
94206       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
94207       vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
94208       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
94209       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
94210       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
94211       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
94212       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
94213       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
94214       vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
94215       vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
94216       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
94217       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
94218       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
94219       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
94220       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
94221       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
94222       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
94223       if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
94224       vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
94225       vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
94226       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
94227       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
94228       vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
94229       vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
94230       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
94231       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
94232       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
94233       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
94234       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
94235       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
94236       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
94237       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
94238       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
94239       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
94240       if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR;
94241       vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
94242       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
94243       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
94244       if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
94245       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
94246       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
94247       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
94248       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
94249       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
94250       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
94251       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
94252       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
94253       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
94254       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
94255       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
94256       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
94257       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
94258       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
94259       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
94260       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
94261       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
94262       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
94263       if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
94264       vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
94265       vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
94266       vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
94267       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
94268       vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
94269       vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
94270       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
94271       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
94272       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
94273       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
94274       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
94275       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
94276       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
94277       vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
94278       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
94279       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
94280       if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
94281       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
94282       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
94283       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
94284       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
94285       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
94286       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
94287       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
94288       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
94289       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
94290       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
94291       vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
94292       vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
94293       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
94294       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
94295       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
94296 #ifdef VK_USE_PLATFORM_ANDROID_KHR
94297       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
94298 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
94299       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
94300       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
94301       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
94302       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
94303       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
94304       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
94305       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
94306       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
94307       if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
94308       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
94309       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
94310       if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
94311       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
94312       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
94313       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
94314       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
94315       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
94316       if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
94317       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
94318       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
94319       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
94320       if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
94321       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
94322 #ifdef VK_USE_PLATFORM_WIN32_KHR
94323       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
94324 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94325       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
94326       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
94327       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
94328       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
94329       if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
94330       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
94331       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
94332       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
94333       vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
94334       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
94335       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
94336 #ifdef VK_USE_PLATFORM_WIN32_KHR
94337       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
94338 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94339       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
94340       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
94341       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
94342       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
94343       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
94344       if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
94345       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
94346       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
94347       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
94348       if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
94349       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
94350       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
94351       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
94352 #ifdef VK_USE_PLATFORM_ANDROID_KHR
94353       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
94354 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
94355       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
94356       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
94357       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
94358 #ifdef VK_USE_PLATFORM_WIN32_KHR
94359       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
94360 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94361 #ifdef VK_USE_PLATFORM_WIN32_KHR
94362       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
94363 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94364 #ifdef VK_USE_PLATFORM_WIN32_KHR
94365       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
94366 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94367       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
94368       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
94369       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
94370       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
94371       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
94372       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
94373       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
94374       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
94375       vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
94376       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
94377       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
94378       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
94379       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
94380       if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
94381       vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
94382       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
94383       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
94384       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
94385       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
94386       if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
94387       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
94388 #ifdef VK_USE_PLATFORM_WIN32_KHR
94389       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
94390 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94391       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
94392       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
94393       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
94394       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
94395       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
94396       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
94397 #ifdef VK_USE_PLATFORM_WIN32_KHR
94398       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
94399 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94400       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
94401 #ifdef VK_USE_PLATFORM_WIN32_KHR
94402       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
94403 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94404       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
94405       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
94406       vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
94407       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
94408       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
94409       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
94410       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
94411       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
94412       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
94413       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
94414       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
94415       vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
94416       vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
94417       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
94418       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
94419       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
94420 #ifdef VK_USE_PLATFORM_WIN32_KHR
94421       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
94422 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
94423       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
94424       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
94425       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
94426       vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
94427       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
94428       vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
94429       vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
94430       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
94431       vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
94432       if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT;
94433       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
94434       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
94435       vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
94436       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
94437       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
94438       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
94439       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
94440       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
94441       if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR;
94442       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
94443       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
94444       if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR;
94445       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
94446       vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
94447       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
94448       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
94449       if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
94450       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
94451       vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
94452       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
94453       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
94454       if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR;
94455       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
94456     }
94457   };
94458 
94459 } // namespace VULKAN_HPP_NAMESPACE
94460 
94461 namespace std
94462 {
94463 
94464   template <> struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
94465   {
operator ()std::hash94466     std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const& accelerationStructureKHR) const VULKAN_HPP_NOEXCEPT
94467     {
94468       return std::hash<VkAccelerationStructureKHR>{}(static_cast<VkAccelerationStructureKHR>(accelerationStructureKHR));
94469     }
94470   };
94471 
94472   template <> struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>
94473   {
operator ()std::hash94474     std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureNV const& accelerationStructureNV) const VULKAN_HPP_NOEXCEPT
94475     {
94476       return std::hash<VkAccelerationStructureNV>{}(static_cast<VkAccelerationStructureNV>(accelerationStructureNV));
94477     }
94478   };
94479 
94480   template <> struct hash<VULKAN_HPP_NAMESPACE::Buffer>
94481   {
operator ()std::hash94482     std::size_t operator()(VULKAN_HPP_NAMESPACE::Buffer const& buffer) const VULKAN_HPP_NOEXCEPT
94483     {
94484       return std::hash<VkBuffer>{}(static_cast<VkBuffer>(buffer));
94485     }
94486   };
94487 
94488   template <> struct hash<VULKAN_HPP_NAMESPACE::BufferView>
94489   {
operator ()std::hash94490     std::size_t operator()(VULKAN_HPP_NAMESPACE::BufferView const& bufferView) const VULKAN_HPP_NOEXCEPT
94491     {
94492       return std::hash<VkBufferView>{}(static_cast<VkBufferView>(bufferView));
94493     }
94494   };
94495 
94496   template <> struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
94497   {
operator ()std::hash94498     std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandBuffer const& commandBuffer) const VULKAN_HPP_NOEXCEPT
94499     {
94500       return std::hash<VkCommandBuffer>{}(static_cast<VkCommandBuffer>(commandBuffer));
94501     }
94502   };
94503 
94504   template <> struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
94505   {
operator ()std::hash94506     std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandPool const& commandPool) const VULKAN_HPP_NOEXCEPT
94507     {
94508       return std::hash<VkCommandPool>{}(static_cast<VkCommandPool>(commandPool));
94509     }
94510   };
94511 
94512   template <> struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
94513   {
operator ()std::hash94514     std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const& debugReportCallbackEXT) const VULKAN_HPP_NOEXCEPT
94515     {
94516       return std::hash<VkDebugReportCallbackEXT>{}(static_cast<VkDebugReportCallbackEXT>(debugReportCallbackEXT));
94517     }
94518   };
94519 
94520   template <> struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
94521   {
operator ()std::hash94522     std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const& debugUtilsMessengerEXT) const VULKAN_HPP_NOEXCEPT
94523     {
94524       return std::hash<VkDebugUtilsMessengerEXT>{}(static_cast<VkDebugUtilsMessengerEXT>(debugUtilsMessengerEXT));
94525     }
94526   };
94527 
94528   template <> struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
94529   {
operator ()std::hash94530     std::size_t operator()(VULKAN_HPP_NAMESPACE::DeferredOperationKHR const& deferredOperationKHR) const VULKAN_HPP_NOEXCEPT
94531     {
94532       return std::hash<VkDeferredOperationKHR>{}(static_cast<VkDeferredOperationKHR>(deferredOperationKHR));
94533     }
94534   };
94535 
94536   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
94537   {
operator ()std::hash94538     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorPool const& descriptorPool) const VULKAN_HPP_NOEXCEPT
94539     {
94540       return std::hash<VkDescriptorPool>{}(static_cast<VkDescriptorPool>(descriptorPool));
94541     }
94542   };
94543 
94544   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
94545   {
operator ()std::hash94546     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSet const& descriptorSet) const VULKAN_HPP_NOEXCEPT
94547     {
94548       return std::hash<VkDescriptorSet>{}(static_cast<VkDescriptorSet>(descriptorSet));
94549     }
94550   };
94551 
94552   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
94553   {
operator ()std::hash94554     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSetLayout const& descriptorSetLayout) const VULKAN_HPP_NOEXCEPT
94555     {
94556       return std::hash<VkDescriptorSetLayout>{}(static_cast<VkDescriptorSetLayout>(descriptorSetLayout));
94557     }
94558   };
94559 
94560   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
94561   {
operator ()std::hash94562     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const& descriptorUpdateTemplate) const VULKAN_HPP_NOEXCEPT
94563     {
94564       return std::hash<VkDescriptorUpdateTemplate>{}(static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate));
94565     }
94566   };
94567 
94568   template <> struct hash<VULKAN_HPP_NAMESPACE::Device>
94569   {
operator ()std::hash94570     std::size_t operator()(VULKAN_HPP_NAMESPACE::Device const& device) const VULKAN_HPP_NOEXCEPT
94571     {
94572       return std::hash<VkDevice>{}(static_cast<VkDevice>(device));
94573     }
94574   };
94575 
94576   template <> struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
94577   {
operator ()std::hash94578     std::size_t operator()(VULKAN_HPP_NAMESPACE::DeviceMemory const& deviceMemory) const VULKAN_HPP_NOEXCEPT
94579     {
94580       return std::hash<VkDeviceMemory>{}(static_cast<VkDeviceMemory>(deviceMemory));
94581     }
94582   };
94583 
94584   template <> struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
94585   {
operator ()std::hash94586     std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayKHR const& displayKHR) const VULKAN_HPP_NOEXCEPT
94587     {
94588       return std::hash<VkDisplayKHR>{}(static_cast<VkDisplayKHR>(displayKHR));
94589     }
94590   };
94591 
94592   template <> struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
94593   {
operator ()std::hash94594     std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayModeKHR const& displayModeKHR) const VULKAN_HPP_NOEXCEPT
94595     {
94596       return std::hash<VkDisplayModeKHR>{}(static_cast<VkDisplayModeKHR>(displayModeKHR));
94597     }
94598   };
94599 
94600   template <> struct hash<VULKAN_HPP_NAMESPACE::Event>
94601   {
operator ()std::hash94602     std::size_t operator()(VULKAN_HPP_NAMESPACE::Event const& event) const VULKAN_HPP_NOEXCEPT
94603     {
94604       return std::hash<VkEvent>{}(static_cast<VkEvent>(event));
94605     }
94606   };
94607 
94608   template <> struct hash<VULKAN_HPP_NAMESPACE::Fence>
94609   {
operator ()std::hash94610     std::size_t operator()(VULKAN_HPP_NAMESPACE::Fence const& fence) const VULKAN_HPP_NOEXCEPT
94611     {
94612       return std::hash<VkFence>{}(static_cast<VkFence>(fence));
94613     }
94614   };
94615 
94616   template <> struct hash<VULKAN_HPP_NAMESPACE::Framebuffer>
94617   {
operator ()std::hash94618     std::size_t operator()(VULKAN_HPP_NAMESPACE::Framebuffer const& framebuffer) const VULKAN_HPP_NOEXCEPT
94619     {
94620       return std::hash<VkFramebuffer>{}(static_cast<VkFramebuffer>(framebuffer));
94621     }
94622   };
94623 
94624   template <> struct hash<VULKAN_HPP_NAMESPACE::Image>
94625   {
operator ()std::hash94626     std::size_t operator()(VULKAN_HPP_NAMESPACE::Image const& image) const VULKAN_HPP_NOEXCEPT
94627     {
94628       return std::hash<VkImage>{}(static_cast<VkImage>(image));
94629     }
94630   };
94631 
94632   template <> struct hash<VULKAN_HPP_NAMESPACE::ImageView>
94633   {
operator ()std::hash94634     std::size_t operator()(VULKAN_HPP_NAMESPACE::ImageView const& imageView) const VULKAN_HPP_NOEXCEPT
94635     {
94636       return std::hash<VkImageView>{}(static_cast<VkImageView>(imageView));
94637     }
94638   };
94639 
94640   template <> struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
94641   {
operator ()std::hash94642     std::size_t operator()(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const& indirectCommandsLayoutNV) const VULKAN_HPP_NOEXCEPT
94643     {
94644       return std::hash<VkIndirectCommandsLayoutNV>{}(static_cast<VkIndirectCommandsLayoutNV>(indirectCommandsLayoutNV));
94645     }
94646   };
94647 
94648   template <> struct hash<VULKAN_HPP_NAMESPACE::Instance>
94649   {
operator ()std::hash94650     std::size_t operator()(VULKAN_HPP_NAMESPACE::Instance const& instance) const VULKAN_HPP_NOEXCEPT
94651     {
94652       return std::hash<VkInstance>{}(static_cast<VkInstance>(instance));
94653     }
94654   };
94655 
94656   template <> struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
94657   {
operator ()std::hash94658     std::size_t operator()(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const& performanceConfigurationINTEL) const VULKAN_HPP_NOEXCEPT
94659     {
94660       return std::hash<VkPerformanceConfigurationINTEL>{}(static_cast<VkPerformanceConfigurationINTEL>(performanceConfigurationINTEL));
94661     }
94662   };
94663 
94664   template <> struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
94665   {
operator ()std::hash94666     std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevice const& physicalDevice) const VULKAN_HPP_NOEXCEPT
94667     {
94668       return std::hash<VkPhysicalDevice>{}(static_cast<VkPhysicalDevice>(physicalDevice));
94669     }
94670   };
94671 
94672   template <> struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
94673   {
operator ()std::hash94674     std::size_t operator()(VULKAN_HPP_NAMESPACE::Pipeline const& pipeline) const VULKAN_HPP_NOEXCEPT
94675     {
94676       return std::hash<VkPipeline>{}(static_cast<VkPipeline>(pipeline));
94677     }
94678   };
94679 
94680   template <> struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
94681   {
operator ()std::hash94682     std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineCache const& pipelineCache) const VULKAN_HPP_NOEXCEPT
94683     {
94684       return std::hash<VkPipelineCache>{}(static_cast<VkPipelineCache>(pipelineCache));
94685     }
94686   };
94687 
94688   template <> struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
94689   {
operator ()std::hash94690     std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineLayout const& pipelineLayout) const VULKAN_HPP_NOEXCEPT
94691     {
94692       return std::hash<VkPipelineLayout>{}(static_cast<VkPipelineLayout>(pipelineLayout));
94693     }
94694   };
94695 
94696   template <> struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
94697   {
operator ()std::hash94698     std::size_t operator()(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const& privateDataSlotEXT) const VULKAN_HPP_NOEXCEPT
94699     {
94700       return std::hash<VkPrivateDataSlotEXT>{}(static_cast<VkPrivateDataSlotEXT>(privateDataSlotEXT));
94701     }
94702   };
94703 
94704   template <> struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
94705   {
operator ()std::hash94706     std::size_t operator()(VULKAN_HPP_NAMESPACE::QueryPool const& queryPool) const VULKAN_HPP_NOEXCEPT
94707     {
94708       return std::hash<VkQueryPool>{}(static_cast<VkQueryPool>(queryPool));
94709     }
94710   };
94711 
94712   template <> struct hash<VULKAN_HPP_NAMESPACE::Queue>
94713   {
operator ()std::hash94714     std::size_t operator()(VULKAN_HPP_NAMESPACE::Queue const& queue) const VULKAN_HPP_NOEXCEPT
94715     {
94716       return std::hash<VkQueue>{}(static_cast<VkQueue>(queue));
94717     }
94718   };
94719 
94720   template <> struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
94721   {
operator ()std::hash94722     std::size_t operator()(VULKAN_HPP_NAMESPACE::RenderPass const& renderPass) const VULKAN_HPP_NOEXCEPT
94723     {
94724       return std::hash<VkRenderPass>{}(static_cast<VkRenderPass>(renderPass));
94725     }
94726   };
94727 
94728   template <> struct hash<VULKAN_HPP_NAMESPACE::Sampler>
94729   {
operator ()std::hash94730     std::size_t operator()(VULKAN_HPP_NAMESPACE::Sampler const& sampler) const VULKAN_HPP_NOEXCEPT
94731     {
94732       return std::hash<VkSampler>{}(static_cast<VkSampler>(sampler));
94733     }
94734   };
94735 
94736   template <> struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
94737   {
operator ()std::hash94738     std::size_t operator()(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const& samplerYcbcrConversion) const VULKAN_HPP_NOEXCEPT
94739     {
94740       return std::hash<VkSamplerYcbcrConversion>{}(static_cast<VkSamplerYcbcrConversion>(samplerYcbcrConversion));
94741     }
94742   };
94743 
94744   template <> struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
94745   {
operator ()std::hash94746     std::size_t operator()(VULKAN_HPP_NAMESPACE::Semaphore const& semaphore) const VULKAN_HPP_NOEXCEPT
94747     {
94748       return std::hash<VkSemaphore>{}(static_cast<VkSemaphore>(semaphore));
94749     }
94750   };
94751 
94752   template <> struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
94753   {
operator ()std::hash94754     std::size_t operator()(VULKAN_HPP_NAMESPACE::ShaderModule const& shaderModule) const VULKAN_HPP_NOEXCEPT
94755     {
94756       return std::hash<VkShaderModule>{}(static_cast<VkShaderModule>(shaderModule));
94757     }
94758   };
94759 
94760   template <> struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
94761   {
operator ()std::hash94762     std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceKHR const& surfaceKHR) const VULKAN_HPP_NOEXCEPT
94763     {
94764       return std::hash<VkSurfaceKHR>{}(static_cast<VkSurfaceKHR>(surfaceKHR));
94765     }
94766   };
94767 
94768   template <> struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
94769   {
operator ()std::hash94770     std::size_t operator()(VULKAN_HPP_NAMESPACE::SwapchainKHR const& swapchainKHR) const VULKAN_HPP_NOEXCEPT
94771     {
94772       return std::hash<VkSwapchainKHR>{}(static_cast<VkSwapchainKHR>(swapchainKHR));
94773     }
94774   };
94775 
94776   template <> struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
94777   {
operator ()std::hash94778     std::size_t operator()(VULKAN_HPP_NAMESPACE::ValidationCacheEXT const& validationCacheEXT) const VULKAN_HPP_NOEXCEPT
94779     {
94780       return std::hash<VkValidationCacheEXT>{}(static_cast<VkValidationCacheEXT>(validationCacheEXT));
94781     }
94782   };
94783 } // namespace std
94784 #endif
94785